问题链接: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复赛 普及组 第一题
问题分析
这个一个进制有关的问题。
程序说明
与参考链接是同一个题,程序代码是直接拿过来用的,有关说明参见参考链接。
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;
}