【GESP】C++一级真题练习(202312)luogu-B3922,小杨报数
GESP一级真题练习。为2023年12月一级认证真题。for
循环和取余计算应用。
luogu-B3922
题目要求
描述
小杨需要从 1 到 N 报数。在报数过程中,小杨希望跳过 M 的倍数。例如,如果 N=5, M=2 ,那么小杨就需要依次报出 1、3、5。
现在,请你依次输出小杨报的数。
输入
输入 2 行,第一行一个整数 N(1≤N≤1,000);第二行一个整数 M(2≤M≤100)。
输出
输出若干行,依次表示小杨报的数。
输入样例-1
5
2
输出样例-1
1
3
5
输入样例-2
10
3
输出样例-2
1
2
4
5
7
8
10
题目分析
遍历 1 到 $N$:对每个数 $x$,判断是否为 $M$ 的倍数。
- 若 $x$ 是 $M$ 的倍数(即 $x \bmod M = 0$),则跳过不报。
- 若 $x$ 不是 $M$ 的倍数,则输出 $x$。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main() {
int N, M; // N为报数上限,M为需要跳过的倍数
cin >> N >> M; // 输入N和M
// 遍历从1到N的所有数字
for (int i = 1; i <= N; i++) {
// 判断当前数字i是否不是M的倍数
if (i % M != 0) {
cout << i << endl; // 如果不是M的倍数,则输出该数字
}
// 如果是M的倍数,则跳过不输出
}
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP 学习专题站:GESP WIKI
“luogu-”系列题目可在洛谷题库进行在线评测。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
欢迎加入:Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答
欢迎加入:C++ GESP/CSP认证学习QQ频道,考试资源总结汇总
欢迎加入:C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助
本文由作者按照 CC BY-NC-SA 4.0 进行授权