目录
- T1. 交换输出
- 思路分析
- T2. 计算乘积
- 思路分析
- T3. 数字判断
- 思路分析
- T4. 满足条件的数的累加
- 思路分析
- T5. 比 n 小的最大质数
- 思路分析
T1. 交换输出
输入两个整数 a a a、 b b b,将它们交换输出。
时间限制:1 s
内存限制:64 MB
- 输入
一行两个整数 a a a、 b b b,以空格分隔。 0 < a < 1 0 8 0 < a < 10^8 0<a<108, 0 < b < 1 0 16 0 < b < 10^{16} 0<b<1016。 - 输出
一行两个整数 b b b、 a a a,以空格分隔。 - 样例输入
123 12345654321
- 样例输出
12345654321 123
思路分析
此题考查基本的输入输出,属于入门题。按照题目要求进行输入输出即可。
注意第二个整数可能很大,需要用 long long
类型进行存储。
/** Name: T1.cpp* Problem: 交换输出* Author: Teacher Gao.* Date&Time: 2024/03/04 22:01*/#include <iostream>using namespace std;int main()
{int a;long long b;cin >> a >> b;cout << b << " " << a << endl;return 0;
}
T2. 计算乘积
给定两个数 a a a、 b b b,计算它们的乘积。
时间限制:1 s
内存限制:64 MB
- 输入
一行两个整数 a a a、 b b b,以空格分隔。 0 < a , b < 1 0 8 0 < a, b < 10^8 0<a,b<108。 - 输出
输出一个整数,表示 a a a、 b b b 的乘积。 - 样例输入
123456 123456
- 样例输出
15241383936
思路分析
此题考查算术运算,属于入门题。
注意整数 a a a、 b b b 的范围虽然在 int
类型之内,但是乘积的结果可能超出 int
范围,为了避免计算结果出错,可以将变量 a
和 b
直接声明为 long long
类型。
/** Name: T2.cpp* Problem: 计算乘积* Author: Teacher Gao.* Date&Time: 2024/03/04 22:02*/#include <iostream>using namespace std;int main()
{long long a, b;cin >> a >> b;cout << a * b << endl;return 0;
}
T3. 数字判断
输入一个字符,如果输入的字符是数字,输出 yes
,否则输出 no
。
时间限制:1 s
内存限制:64 MB
- 输入
一个字符。 - 输出
如果输入的字符是数字,输出yes
,否则输出no
。 - 样例输入 1 1 1
5
- 样例输出 1 1 1
yes
- 样例输入 2 2 2
A
- 样例输出 2 2 2
no
思路分析
此题考查分支结构,属于入门题。思路与同年 6 6 6 月份考试的 T3 一致,可以参考2021 年 6 月青少年软编等考 C 语言一级真题解析中的 T3。
/** Name: T3.cpp* Problem: 数字判断* Author: Teacher Gao.* Date&Time: 2024/03/04 22:03*/#include <iostream>using namespace std;int main()
{char ch;cin >> ch;if ('0' <= ch && ch <= '9') {cout << "yes" << endl;}else {cout << "no" << endl;}return 0;
}
T4. 满足条件的数的累加
现有 n n n 个整数,将其中个位数为 k k k 的数进行累加求和。
时间限制:1 s
内存限制:64 MB
- 输入
第一行两个整数 n n n、 k k k,以空格分隔。 0 < n < 1000 0 < n < 1000 0<n<1000, 0 ≤ k ≤ 9 0 \le k \le 9 0≤k≤9。
第二行 n n n 个非负整数,以空格分隔,每个数不大于 100000 100000 100000。 - 输出
输出满足题目要求的累加和。 - 样例输入
10 7 2 5 7 17 11 18 4 27 1 7
- 样例输出
58
思路分析
此题考查循环结构与分支结构,属于入门题。
此题需要依次判断输入的每个数 x
。若 x
的个位与 k k k 相等,则将 x
累加。x
的个位可以用 x % 10
获取。
/** Name: T4.cpp* Problem: 满足条件的数的累加* Author: Teacher Gao.* Date&Time: 2024/03/04 22:04*/#include <iostream>using namespace std;int main()
{int n, k, x;cin >> n >> k;int sum = 0;for (int i = 1; i <= n; i++) {cin >> x;if (x % 10 == k) {sum += x;}}cout << sum << endl;return 0;
}
T5. 比 n 小的最大质数
对于给定的 n n n,求比 n n n 小的质数中最大的一个。
质数是指一个大于 1 1 1 的自然数,除了 1 1 1 和它自身外,不能被其他自然数整除的数。
时间限制:1 s
内存限制:64 MB
- 输入
一个整数 n n n。 2 < n < 10000 2 < n < 10000 2<n<10000。 - 输出
一个整数,即题目要求的解。 - 样例输入
100
- 样例输出
97
思路分析
此题考查质数判断,需要用到循环结构,属于一般应用题。
此题可以用循环遍历从 n n n 到 2 2 2 的所有整数,依次判断每个整数 i
是否为质数,若为质数,则输出 i
即可结束程序。之所以从 n n n 开始遍历,是因为这样找出来的第一个质数就是题目需要的比 n n n 小的最大质数;之所以到 2 2 2 结束,是因为最小的质数就是 2 2 2。
判断质数时,可以依次枚举从 2 2 2 到 n \sqrt{n} n 的所有整数 j
,检测是否存在某个整数 j
为 i
的因子。若存在,则说明 i
不是质数;若不存在,则说明 i
是质数。这里可以使用标记法进行标记,具体使用方法见参考代码。
/** Name: T5.cpp* Problem: 比 n 小的最大质数* Author: Teacher Gao.* Date&Time: 2024/03/04 22:06*/#include <iostream>using namespace std;int main()
{int n;cin >> n;for (int i = n; i >= 2; i--) {// 标记法判断 i 是否为质数bool flag = 1;for (int j = 2; j * j <= i; j++) {if (i % j == 0) {flag = 0;break;}}if (flag) {cout << i << endl;break;}}return 0;
}