问题链接: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; }