1.题目链接
2.题意描述
计算1~n中,数字x出现了多少次
3.样例解读
- 样例:输入11,1 即在1~11中计算出1出现了多少次,共出现了4次,分别为1出现了1次,10出现了1次,11出现了两次
4.解题思路
此题目利用for循环遍历1~n的所有数字,每遍历到一个数字就利用while循环将这个数字的每一位从后往前逐一取出来判断其是否为我们要找的数字x,如果是的话就用一个累加器标记好,最终对全部数字遍历结束,输出累加器里的值
5.代码实现
#include <iostream>
using namespace std;
int n,x,sum;
int main(){
cin>>n>>x;
for(int i=1;i<=n;i++){
//i一定要复制给一个中间变量,i只用来控制for循环遍历到哪个数字,中间变量用于拆分每一位
int k=i;
while(k>0){ //循环终止条件为数字里的每一位都被取出来判断过了
if(k%10==x){ //取出当前数字的个位
sum++;
}
k=k/10; //将当前数字的个位去掉,此位数已经判断过了
}
}
cout<<sum;
return 0;
}