POJ NOI0105-41 数字统计

问题链接POJ NOI0105-41 数字统计



总时间限制:
1000ms
内存限制:
65536kB
描述

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

比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。


输入
输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。
输出
输出共 1 行,表示数字 2 出现的次数。
样例输入
2 22

样例输出
6

提示

来源
NOIP2010复赛 普及组 第一题


问题分析

  这个一个进制有关的问题。

程序说明

  与参考链接是同一个题,程序代码是直接拿过来用的,有关说明参见参考链接。





参考链接Vijos P1784 数字统计




AC的C++语言程序:

    #include <iostream>  
      
    using namespace std;  
      
    const int BASE10 = 10;  
    const int DIGIT = 2;  
      
    int main()  
    {  
        int l, r, count, t;  
      
        cin >> l >> r;  
      
        count = 0;  
        for(int i=l; i<=r; i++) {  
            t = i;  
            while(t) {  
                if(t % BASE10 == DIGIT)  
                    count++;  
                t /= BASE10;  
            }  
        }  
      
        cout << count << endl;  
      
        return 0;  
    }  



原文地址:https://www.cnblogs.com/tigerisland/p/7563811.html