数字统计

· · 题解

题目描述

请统计某个给定范围[L, R][L,R]的所有整数中,数字 22 出现的次数。

比如给定范围[2, 22][2,22],数字 22 在数 2 2中出现了 11 次,在数 1212 中出现 11 次,在数 2020 中出现 1 1次,在数 21 中出现 11 次,在数 2222 中出现 2 2次,所以数字 22 在该范围内一共出现了 66次。

输入格式

22个正整数 LL 和 RR,之间用一个空格隔开。

输出格式

数字 2 2出现的次数。

输入输出样例

输入

2 22

输出

6

输入

2 100

输出

20

说明/提示

1 ≤ L ≤R≤ 1000001≤L≤R≤100000。

___

首先,读入; 再用循环判断每一位数字是否为2; 接下来用ans计数。 最后输出。

#include <bits/stdc++.h>
using namespace std;
int main(){
    long n,m,ans;
    cin>>m>>n;
    for(int i=m;i<=n;i++)
    {
        for(int j=10;1;j*=10)
        {
            if((i%j-i%(j/10))/(j/10)==2)
            {
                ans++;
            }
            if(i%j>=i)
            break;
        }
    }
    cout<<ans;
    return 0;
}