背景
来自 NOIP2010 普及组
第一题
描述
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。
比如在给定范围[2, 22],数字2在数2中出现了1次,在数12中出现了1次,在数20中出现了1次,在数21中出现了1次,在数22中出现了2次,所以数字2在该范围内一共出现了6次。
格式
输入格式
输入共一行,为两个正整数L和R,之间用一个空格隔开。
输出格式
输出共1行,表示数字2出现的次数。
样例1
样例输入1
2 22
样例输出1
6
样例2
样例输入2
2 100
样例输出2
20
限制
1s
提示
【数据范围】
1≤L≤R≤10000
====很简单哦!====
问题链接: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; }