2025年6月
编程题
编程题1:数三角形
方法: 嵌套枚举
问题描述:
直角三角形有两条直角边与一条斜边, 设两条直角边的长度分别为a, b, 则直角三角形的面积为 a*b/2。请你计算当直角边长a, b均取不超过n的正整数时, 有多少个不同的面积为整数的直角三角形。直角边长分别为a, b和a’, b’的两个直角三角形相同, 当且仅当 a=a’, b=b’ 或者 a=b’, b=a’。
输入描述:
一行,一个整数n,表示直角边长的最大值。
输出描述:
输出一行,一个整数,表示不同的直角三角形数量。
样例输入1:
3
样例输出1:
3
样例输入2:
5
样例输出2:
9
编程题2:幂和数
方法: 嵌套枚举
问题描述:
对于正整数n, 如果可以表为两个2的次幂之和, 即 n = 2x + 2y (x, y均为非负整数), 那么称为幂和数。给定正整数l, r, 请你求出满足 l ≤ n ≤ r 的整数n中有多少个幂和数。
输入描述:
一行,两个正整数l, r。
输出描述:
输出一行,一个整数,表示l, r之间幂和数的数量。
样例输入1:
2 8
样例输出1:
6
样例输入2:
10 100
样例输出2:
20
2025年3月
单选题
第12题
方法: 嵌套枚举
题目描述:
哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和,下面的代码用于验证4-1000之内的偶数能否分解为两个质数之和。下面C++代码中假设isPrime()是已经定义好用于判断正整数是否为质数,返回bool值。对该段代码,错误的说法是( )。
代码片段:
for (i=4; i < 1000; i += 2) for (j=2; j<i; j++) if (isPrime(j) && isPrime(i-j)){ printf("%d=%d+%d\n", i, j, i-j); break; }
2024年6月
编程题
编程题1:平方之和
方法: 枚举
问题描述:
小杨有n个正整数 a1, a2, …, an。他想知道对于所有的 i (1 ≤ i ≤ n), 是否存在两个正整数x和y满足 x*x + y*y = ai。
输入描述:
第一行包含一个正整数n, 代表正整数数量。之后n行, 每行包含一个正整数ai。
输出描述:
对于每个正整数 ai, 如果存在两个正整数x和y满足条件, 输出Yes, 否则输出No。
样例输入:
2 5 3
样例输出:
Yes No
2024年3月
单选题
第8题
方法: 模拟
题目描述:
下面C++代码执行后的输出是?
代码片段:
int s, t, ans; s = 2, t = 10; ans = 0; while (s != t){ if (t % 2 == 0 && t / 2 >= s) t /= 2; else t -= 1; ans += 1; } cout << ans;
第9题
方法: 模拟
题目描述:
下面C++代码执行后的输出是?
代码片段:
int n, masks, days, cur; n = 17; masks = 10, days = 0; cur = 2; while (masks != n){ if (cur == 0 || cur == 1) masks += 7; masks -= 1; days += 1; cur = (cur + 1) % 7; } cout << days;
2023年12月
编程题
编程题1:小杨做题
方法: 模拟
问题描述:
为了准备考试,小杨每天都要做题。第1天,小杨做了a道题;第2天,小杨做了b道题;从第3天起,小杨每天做的题目数量是前两天的总和。此外,小杨还规定,当自己某一天做了大于或等于m题时,接下来的所有日子里,他就再也不做题了。请问,到了第N天,小杨总共做了多少题呢?
输入描述:
总共4行。第一行一个整数a, 第二行一个整数b, 第三行一个整数m, 第四行一个整数N。
输出描述:
一行一个整数,表示小杨N天里总共做了多少题目。
样例输入:
1 2 10 5
样例输出:
19
2023年9月
编程题
编程题2:数字黑洞
方法: 模拟
问题描述:
给定一个三位数,要求各位不能相同。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是,最终一定会得到495! 现在,输入一个三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?
输入描述:
输入一行, 包含一个符合要求的三位数N。
输出描述:
输出一行, 包含一个整数C, 表示经过C次变换得到495。
样例输入:
352
样例输出:
4
2023年6月
编程题
编程题1:找素数
方法: 嵌套枚举
问题描述:
小明刚刚学习了素数的概念:如果一个大于1的正整数,除了1和它自身外,不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正整数A和B之间(包括A和B)有多少个素数?
输入描述:
输入2行, 第一行包含正整数A, 第二行包含正整数B。约定2 ≤ A < B ≤ 1000。
输出描述:
输出一行, 包含一个整数C, 表示找到C个素数。
样例输入:
2 10
样例输出:
4
编程题2:自幂数判断
方法: 模拟 / 枚举
问题描述:
自幂数是指, 一个N位数, 满足各位数字N次方之和是本身。例如, 153是3位数, 其每位数的3次方之和, 1³ + 5³ + 3³ = 153, 因此153是自幂数。现在, 输入若干个正整数, 请判断它们是否是自幂数。
输入描述:
输入第一行是一个正整数M, 表示有M个待判断的正整数。从第2行开始的M行, 每行一个待判断的正整数。
输出描述:
输出M行, 如果对应的待判断正整数为自幂数, 则输出英文大写字母’T’, 否则输出英文大写字母’F’。
样例输入:
3 152 111 153
样例输出:
F F T
2023年3月
编程题
编程题2:百鸡问题
方法: 嵌套枚举
问题描述:
“百鸡问题”是出自我国古代《张丘建算经》的著名数学问题。大意为:“每只公鸡5元,每只母鸡3元,每3只小鸡1元;现在有100元,买了100只鸡,共有多少种方案?”。现在对这个问题进行扩展: 如果每只公鸡x元, 每只母鸡y元, 每z只小鸡1元; 现在有n元, 买了m只鸡, 共有多少种方案?
输入描述:
输入一行, 包含五个整数, 分别为问题描述中的x、y、z、n、m。
输出描述:
输出一行, 包含一个整数C, 表示有C种方案。
样例输入:
5 3 3 100 100
样例输出:
4