区间[M,N]中X出现个数

区间[M,N]中X出现个数
例如 输入28 33 3 输出5

#include<iostream>
using namespace std;
long getnum1(long n, long i) {
 long res = 0;
 long factor = 1;
 while (n / factor) {
  long high = (n / factor) / 10;
  long curr = (n / factor) % 10;
  long low = n - (n / factor) * factor;
  if (curr < i) {
   res = res + (high)*factor;
  }
  else if (curr == i) {
   res = res + (high)*factor + low + 1;
  }
  else if (curr > i) {
   res = res + (high + 1) * factor;
  }
  factor = factor * 10;
 }
 return res;
}
long getnum(long M, long N, long X)
{
 return getnum1(N, X) - getnum1(M, X);
}
void main(){
	long a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	cout<<getnum(a,b,c)<<endl;}
发布了57 篇原创文章 · 获赞 28 · 访问量 4139

猜你喜欢

转载自blog.csdn.net/weixin_41747893/article/details/102539229
今日推荐