以下是难度稍高的十道C++普及组题目,涉及稍复杂的逻辑处理、数组应用和基础算法,适合进阶练习。
1. 求最大公约数和最小公倍数
输入两个正整数a和b,输出它们的最大公约数(GCD)和最小公倍数(LCM)。
提示:LCM(a,b) = a×b / GCD(a,b)
输入示例: 12 18
输出示例: 6 36
2. 数组去重与排序
输入n个整数(n≤100),去除重复的数字后,将剩余数字按从小到大的顺序输出。
输入示例: 5 3 2 2 5 4
输出示例: 2 3 4 5
3. 统计元音字母个数
输入一个字符串(可包含大小写字母和空格),统计其中元音字母(a、e、i、o、u,不区分大小写)的总个数。
输入示例: Hello World
输出示例: 3 (e、o、o)
4. 计算闰年
输入一个年份,判断该年是否为闰年。闰年规则:能被4整除但不能被100整除,或能被400整除。
输入示例: 2000
输出示例: yes ;输入 1900 输出 no
5. 杨辉三角的第n行
输入一个正整数n(n≤20),输出杨辉三角的第n行(从第1行开始,每行数字用空格分隔)。
提示:第n行有n个数字,每个数字等于上方两数之和,边界为1。
输入示例: 4
输出示例: 1 3 3 1
6. 数字反转(含负号)
输入一个整数(可正可负),将其数字反转后输出(保留负号,若反转后首位为0则去除)。
输入示例: -1230
输出示例: -321
7. 求数组中第二大的数
输入n个互不相同的整数(n≥2),找出其中第二大的数。
输入示例: 6 10 5 8 1 3 7
输出示例: 8
8. 计算连续子数组的最大和
输入n个整数(可正可负,n≤100),找出其中连续子数组(至少含一个元素)的最大和。
输入示例: 5 -1 2 3 -2 4
输出示例: 7 (子数组:2,3,-2,4)
9. 判断回文数
输入一个整数,判断它是否为回文数(正着读和倒着读一样,如12321)。若是输出 yes ,否则输出 no 。
输入示例: 123321
输出示例: yes
10. 统计区间内的素数个数
输入两个正整数L和R(L≤R≤10000),统计区间[L, R]内素数的个数。
输入示例: 10 20
输出示例: 4 (11、13、17、19)
这些题目在基础知识点上增加了逻辑复杂度,需要更细致的条件判断和流程设计,适合训练编程思维和代码实现能力。
最后,祝大家在信奥赛中取得优异成绩。
本期博客就到这里,我们下期再见!👋