Vijos P1848 记数问题【进制】
描述
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
格式
输入格式
输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。
输出格式
输出共 1 行,包含一个整数,表示 x 出现的次数。
样例1
样例输入1
11 1
样例输出1
4
限制
每个测试点1s。
提示
对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
来源
NOIP 2013 普及组
问题链接:Vijos P1848 记数问题
问题分析:
穷举法实现,没有什么技术含量。
一个数模除10的结果是该数的个位,一个数处以(整除)10的结果是该数10进制右移1位(去掉个位)。
程序说明:
(略)
参考链接:(略)
AC的C++程序如下:
#include <iostream>
using namespace std;
int main()
{
    int n, x, ans, v;
    cin >> n >> x;
    ans = 0;
    for(int i=1; i<=n; i++) {
        v = i;
        while(v) {
            if(v % 10 == x)
                ans++;
            v /= 10;
        }
    }
    cout << ans << endl;
    return 0;
}
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号