C语言的一道问题:数字统计

题目:数字统计

img

样例输入:
样例 #1:
2 22

样例 #2:
2 100

样例输出:
样例 #1:
6

样例 #2:
20

num要先初始化
num=0

方法1.

#include<stdio.h>
int main(){
    int L,R;
    int i,x;
    int count=0;
    scanf("%d%d",&L,&R);
    for(i=L;i<=R;i++){
        x=i;
        do{
            if(x%10==2) count++;
            x/=10;
        }while(x);
    }
    printf("%d",count);
    return 0;
}

方法2.

#include<bits/stdc++.h>
using namespace std;
int main(){
    int l,r,b,d;
    int c=0;
    cin>>l>>r;
    for(int i=l;i<=r;i++){
        b=i;
        while(b){
            d=b%10;
            if(d==2)c++;
            b/=10;
        }
    }
    cout<<c<<endl;
    return 0;
}

解答如下,有帮助请采纳,有问题请回复

img

#include <stdio.h>
int IsNumber(int num,int n)//n在num中,return出现的次数,如2在252中出现2次 
{
    int count=0; 
    while(num)
    {
        int tem=num%10;
        if(tem==n) count++;
        num/=10;
    }
    return count;
}
int main()
{
    int L,R,i,count=0;
    scanf("%d%d",&L,&R);
    for(i=L;i<=R;i++)
    {
        count+=IsNumber(i,2);
    }
    printf("%d",count);
    return 0;
}