记数问题
Description
试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10、11中,数字1出现了4次。
Input
每组输入数据共1行,包含2个整数n、x,之间用一个空格隔开。1≤n≤1,000,000,0≤x≤9。
Output
每组输出共1行,包含一个整数,表示x出现的次数。
Sample Input 1
11 1
Sample Output 1
4
Sample Input 2
1000000 0
Sample Output 2
488895
思路:假设输入n,这道题将1到n的所有数的二进制位取出来,如果等于题目第二个输入的数,则num++即可;
代码如下:
1 #include<iostream> 2 using namespace std; 3 4 5 6 long long int n ; 7 long long int b ; 8 long long int tmp; 9 long long int a; 10 long long int num; 11 int main() 12 { 13 cin>>n; 14 cin>>a; 15 for(int i = 1 ; i <= n ;i++) 16 { 17 b = i; 18 while(b!=0) 19 { 20 tmp = b%10; 21 b/=10; 22 if(a==tmp) num++; 23 } 24 25 } 26 cout<<num; 27 return 0; 28 }