202309-小明的幸运数(luogu-B3864)
GESP一级真题练习。为2023年9月一级认证真题。应该是两道题中略难的一道。
luogu-B3864 小明的幸运数
题目要求
描述
所有个位数为 k 的正整数,以及所有 k 的倍数,都被小明称为“ k 幸运数”。小明想知道正整数 L 和 R 之间(包括 L 和 R)所有 k 幸运数的和,你能帮帮他吗?
输入
输入 3 行。第一行包含一个正整数 k,第二行包含一个正整数 L,第三行包含一个正整数 R。约定 2≤k≤9,1≤L≤R≤1000。
输出
输出 1 行,符合题意的幸运数之和。
输入样例-1
7
1
10
输出样例-1
7
输入样例-2
7
10
20
输出样例-2
3
题目分析
遍历判定法:
- 遍历区间 :对区间内的每个数字 ,依次判断是否为" 幸运数"。
- 判断条件:
- 如果 ,说明 的个位数为 。
- 如果 ,说明 是 的倍数。
- 使用一个变量
total_sum
累加符合条件的数的和。 - 输出最终的和。
示例代码
#include <iostream>
using namespace std;
int main() {
// 定义变量:lucky表示幸运数k,first和end表示区间范围[L,R]
int lucky, first, end;
// 读取输入:幸运数k和区间范围[L,R]
cin >> lucky >> first >> end;
// 定义sum变量,用于累加幸运数
int sum = 0;
// 遍历区间[L,R]
for (int i = first; i <= end; i++) {
// 判断条件:个位数为k或者是k的倍数
if (i % 10 == lucky || i % lucky == 0) {
// 累加符合条件的数
sum += i;
}
}
// 输出结果
cout << sum;
return 0;
}
{% include custom/custom-post-content-footer.md %}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

Last updated on