二级
C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【GESP】C++二级练习 luogu-b2082, 数字统计
📅 2024-12-15·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#多重循环
GESP二级练习,涉及多层条件和循环嵌套,类似题型重复练习,难度★✮☆☆☆。
luogu-b2082 数字统计
题目要求
题目描述
请统计某个给定范围 的所有整数中,数字 出现的次数。
比如给定范围 ,数字 在数 中出现了 次,在数 中出现 次,在数 中出现 次,在数 中出现 次,在数 中出现 次,所以数字 在该范围内一共出现了 次。
输入格式
输入共 行,为两个正整数 和 ,之间用一个空格隔开。
输出格式
输出共 行,表示数字 出现的次数。
样例输入 #1
BASH
2 22
样例输出 #1
BASH
6
样例输入 #2
BASH
2 100
样例输出 #2
BASH
20
数据范围
。
题目分析
这是一道简单的数学题,需要统计一个给定范围内所有整数中数字2出现的次数。我们可以使用一个循环来遍历这个范围,然后对每个数进行逐位判断。具体来说,我们可以通过取模运算(%)和整除运算(/)来逐位提取每个数的数字,并判断是否为2。如果是,就将答案加1。最后输出答案即可。
示例代码
CPP
#include <iostream>
using namespace std;
int main() {
int a, b; // 定义两个整数a和b
cin >> a >> b; // 从输入流中读取a和b的值
int ans = 0; // 初始化答案为0
for (int i = a; i <= b; i++) { // 从a到b遍历每个数
int d = i, num; // 将当前数i赋值给d,并定义一个临时变量num
while (d != 0) { // 当d不为0时循环
num = d % 10; // 取d的最后一位数字
if (num == 2) { // 如果最后一位数字是2
ans++; // 答案加1
}
d /= 10; // 将d除以10,去掉最后一位数字
}
}
cout << ans; // 输出答案
return 0;
}
💡 OneCoder 资源指引
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
🤝 技术交流与答疑
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
📚
猜你想读 · 相关文章推荐
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
💬 读者留言与交流
还没有留言,快来成为第一个讨论者吧!