【GESP】C++一级真题练习(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
题目分析
遍历判定法:
- 遍历区间 ([L, R]):对区间内的每个数字 (n),依次判断是否为“k 幸运数”。
- 判断条件:
- 如果 (n % 10 == k),说明 (n) 的个位数为 (k)。
- 如果 (n % k == 0),说明 (n) 是 (k) 的倍数。
- 使用一个变量
total_sum
累加符合条件的数的和。 - 输出最终的和。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main() {
int lucky, first, end;
cin >> lucky >> first >> end;
int sum = 0;
for (int i = first; i <= end; i++) {
if (i % 10 == lucky || i % lucky == 0) {
sum += i;
}
}
cout << sum;
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
本文由作者按照 CC BY 4.0 进行授权