题解 P1179 【数字统计】

· · 题解

水题一道,不难.

就是用

while(x){
    if(2==x%10){
        ans++;
    }
    x/=10;
}

来分解并判断2的出现个数.

只是要注意不能改变for循环中i的值,所以我用了函数来实现分解

代码:

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int l,r;
int ans;
void fjpd(int x){//分解判断 
    while(x){
        if(2==x%10){
            ans++;//确认好了答案++
        }
        x/=10;
    }
}
int main(){
    scanf("%d%d",&l,&r);
    for(int i=l;i<=r;i++){//从l到r
        fjpd(i);
    }
    printf("%d",ans);
    return 0;
}