1.题目链接
2.题意描述
在整数[L,R]的区间范围内,计算数字2出现的次数
3.样例解读
- 样例一:在2~22中,数字2出现了一次2,数字12出现了一次2,数字20出现了一次2,数字21出现了一次2,数字22出现了两次2,总共出现了6次
- 样例二:解释同上,数据过大不在此处展开描述
4.解题思路
此题目利用for循环遍历L~R的所有数字,每遍历到一个数字就利用while循环将这个数字的每一位从后往前逐一取出来判断其是否为数字2,如果是的话就用一个累加器标记好,最终对全部数字遍历结束,输出累加器里的值
5.代码实现
#include<iostream>
using namespace std;
int l,r,ans;
int main(){
cin>>l>>r;
for(int i=l;i<=r;i++){
//i一定要复制给一个中间变量,i只用来控制for循环遍历到哪个数字,中间变量用于拆分每一位
int k=i;
while(k>0){ //循环终止条件为数字里的每一位都被取出来判断过了
int m=k%10; //取出当前数字的个位
if(m==2){
ans++;
}
k/=10; //将当前数字的个位去掉,此位数已经判断过了
}
}
cout<<ans;
return 0;
}