[NOIP 2010 普及组] 数字统计
GESP二级,多层循环和分支练习,难度★✮☆☆☆。
luogu-P1179 [NOIP 2010 普及组] 数字统计
题目要求
题目描述
请统计某个给定范围 的所有整数中,数字 出现的次数。
比如给定范围 ,数字 在数 中出现了 次,在数 中出现 次,在数 中出现 次,在数 中出现 次,在数 中出现 次,所以数字 在该范围内一共出现了 次。
输入格式
个正整数 和 ,之间用一个空格隔开。
输出格式
数字 出现的次数。
样例输入 #1
2 22
样例输出 #1
6
样例输入 #2
2 100
样例输出 #2
20
提示
。
NOIP2010 普及组 第一题
题目分析
解题思路
- 读取输入的范围 。
- 初始化一个计数器,用于统计数字 出现的次数。
- 遍历从 到 的所有整数。
- 对于每个整数,循环除以 ,直到该整数为 。
- 在每次循环中,检查余数是否为 ,如果是,则计数器加 。
- 遍历完毕后,输出计数器的值,即数字 出现的次数。
{% include custom/custom-post-content-inner.html %}
示例代码
#include <iostream>
using namespace std;
int main() {
int l, r; // 定义两个整型变量l和r,用于存储输入的范围
cin >> l >> r; // 从标准输入流中读取l和r的值
int ans = 0; // 定义一个整型变量ans,初始化为0,用于存储答案
for (int i = l; i <= r; i++) { // 从l开始循环,直到i不大于r
int j, re = i; // 定义一个整型变量j和re,re初始化为i
while (re != 0) { // 当re不为0时循环
j = re % 10; // 计算re除以10的余数,并赋值给j
if (j == 2) { // 如果j等于2
ans++; // 将ans加1
}
re /= 10; // 将re除以10
}
}
cout << ans; // 输出ans的值
return 0; // 返回0,表示程序正常结束
}
{% include custom/custom-post-content-footer.md %}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

Last updated on