信息学奥赛一本通1949:【10NOIP普及组】数字统计

1949:【10NOIP普及组】数字统计


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 8725     通过数: 6687

【题目描述】

请统计某个给定范围[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

【提示】

【输入输出样例2】

输入:

2 100

输出:

20

【数据范围】

1 ≤ L ≤ R≤ 10000。


思路:

首先读入L,r

然后循环从L到r

然后在循环里套一个循环,用来判断某个数有几个2

然后输出


代码:

#include 
using namespace std;
int l,r,i1,i2;
int main() {
	ios::sync_with_stdio (0);
	cin.tie (0);
	cout.tie (0);
	cin >> l >> r;//读入
	for (int i = l;i <= r;i ++) {
		i1 = i;//
		for (;i1 > 0;) {//如果i1>0就一直循环
			if (i1 % 10 == 2) {//如果末尾是2
				i2 ++;//个数++
			}
			i1 /= 10;//抹去末尾
		}
	}
	cout << i2;//输出个数
	return 0;
}

你可能感兴趣的:(算法)