C++蓝桥杯真题(题目+解析+流程图)(特殊运算符+四叶玫瑰数+质因数的个数+最大的矩形纸片+数字游戏+活动人数)
C++蓝桥杯真题
- 蓝桥杯省赛C++题目分析
- 1. 特殊运算符
- 题目描述
- 输入描述
- 输出描述
- 输入输出样例
- 正确代码
- 错误代码
- 分析
- 流程图
- 2. 四叶玫瑰数
- 题目描述
- 输入描述
- 输出描述
- 输入输出样例
- 正确代码
- 错误代码
- 分析
- 流程图
- 3. 质因数的个数
- 题目描述
- 输入描述
- 输出描述
- 输入输出样例
- 正确代码
- 错误代码
- 分析
- 流程图
- 4. 最大的矩形纸片
- 题目描述
- 输入描述
- 输出描述
- 输入输出样例
- 正确代码
- 错误代码
- 分析
- 流程图
- 5. 数字游戏
- 题目描述
- 输入描述
- 输出描述
- 输入输出样例
- 正确代码
- 错误代码
- 分析
- 流程图
- 6. 活动人数
- 题目描述
- 输入描述
- 输出描述
- 输入输出样例
- 正确代码
- 错误代码
- 分析
- 流程图
蓝桥杯省赛C++题目分析
1. 特殊运算符
题目描述
假定有一个运算符“>>>”,它的功能是取一个三位数的前两位。给定一个正整数N(100<N<1000),请计算N-(>>>N)的结果。
输入描述
输入一个正整数N(100<N<1000)。
输出描述
输出一个整数,表示N-(>>>N)的结果。
输入输出样例
- 输入:257
- 输出:232
正确代码
#include <iostream>
using namespace std;int main() {int n;cin >> n;int k = n / 10; // “>>>”的意义指取一个三位数的前两位cout << n - k;return 0;
}
错误代码
#include <iostream>
using namespace std;int main() {int n;cin >> n;int k = n / 100; // 错误地取了百位数cout << n - k;return 0;
}
分析
本题的关键在于理解“>>>”运算符的含义,即取三位数的前两位。通过整数除法n/10
可以实现这一功能,而不是错误地使用n/100
。
流程图
2. 四叶玫瑰数
题目描述
四叶玫瑰数是指一个四位数,其各位上的数字的四次方之和等于本身。给定两个正整数N和M,请将N~M(1≤N≤M≤1000000)之间(含N和M)的四叶玫瑰数按从小到大的顺序输出。
输入描述
第一行输入两个正整数N、M(1≤N≤M≤1000000)。
输出描述
输出一行,包含若干个用一个空格隔开的正整数,表示N~M之间的四叶玫瑰数。
输入输出样例
- 输入:1234 2345
- 输出:1634
正确代码
#include <iostream>
#include <cmath>
using namespace std;bool isFourLeafRose(int num) {int a = num / 1000;int b = num / 100 % 10;int c = num / 10 % 10;int d = num % 10;return pow(a, 4) + pow(b, 4) + pow(c, 4) + pow(d, 4) == num;
}int main() {int n, m;cin >> n >> m;for (int i = max(n, 1000); i <= min(m, 9999); i++) {if (isFourLeafRose(i)) {cout << i << " ";}}return 0;
}
错误代码
#include <iostream>
#include <cmath>
using namespace std;bool isFourLeafRose(int num) {int a = num / 1000;int b = num / 100 % 10;int c = num / 10 % 10;int d = num % 10;return pow(a, 3) + pow(b, 3) + pow(c, 3) + pow(d, 3) == num; // 错误地使用了三次方
}int main() {int n, m;cin >> n >> m;for (int i = n; i <= m; i++) {if (isFourLeafRose(i)) {cout << i << " ";}}return 0;
}
分析
本题需要判断一个四位数是否为四叶玫瑰数,即其各位数字的四次方之和是否等于该数本身。正确代码中使用了pow
函数计算四次方,并通过循环遍历指定范围内的所有四位数来寻找符合条件的数。错误代码中错误地使用了三次方,导致无法正确判断四叶玫瑰数。