信息学奥赛一本通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 <bits/stdc++.h>
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;
}

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值