外观
2026-计算概论C-py作业7
题集链接
OpenJudge/计算概论C(py)/2026-计算概论C-py作业7共 4 题。题面、知识点、解题提示和易错点可直接查看。截止时间为北京时间 2026-11-16 00:00(即 11 月 15 日周日结束时)。
完整参考解析于截止后公开,教师可沿用作业 2 的密码提前查看。请在本作业题集提交;汇总练习题集中的提交不计作业成绩。
01:十进制到八进制
题目描述
把一个十进制正整数转化成八进制。
输入
一行,仅含一个十进制表示的整数a(0 < a < 65536)。
输出
一行,a的八进制表示。
样例输入
9样例输出
11解题提示
本题知识点: 递归、整除与取余。
把一个数拆成除以 8 的商与余数:商对应更高位,余数对应最后一位。递归先处理商,再处理当前余数;当数小于 8 时即可直接确定这一位。
易错点
高位先输出,不能把各次余数按求出的顺序直接拼接。输出不带 0o 前缀;用 7、8、9、64 检查位数变化。
本题答案暂未公开
北京时间 2026/11/16 00:00:00 解锁
8 天 13 小时 16 分 49 秒
正在载入加密答案…
02:房间转移(基础版)
题目描述
一个人从一个房间走到另一个房间需要走n米,这个人每步可以走1米或2米,他一共有多少种不同的走路方案?
输入
整数n,n∈[20,30]
输出
可行的走路方案数,结果对1e9取模
样例输入
20样例输出
10946提示
输入部分代码提示:
n = input()
n = int(n)
解题思路:
走到第n米,上一步要么走了2米,要么走了1米;走了n米问题可以转换上一步走了2米——(n-2)米走路方案数和上一步走了1米——(n-1)米走路方案数之和的问题。
解题提示
本题知识点: 递归关系、记忆化。
按最后一步分类:最后一步走 1 米或 2 米,两种情况互不重叠。先确定走 1 米、2 米的方案数,再将问题缩小到前面的距离;可保存已计算的子问题,避免重复计算。
易错点
题目要求对 1000000000 取模,Python 中 1e9 是浮点数,取模时宜使用整数。不要把走路方案数的初值与普通斐波那契数列混淆。
本题答案暂未公开
北京时间 2026/11/16 00:00:00 解锁
8 天 13 小时 16 分 49 秒
正在载入加密答案…
03:小猴吃桃
题目描述
一只小猴子在第一天摘下若干个桃子,它吃掉了一半,感觉吃得还不过瘾,于是又多吃了一个;
第二天早上,它又将剩下的桃子吃掉一半,并多吃了一个。
以后每天早上,小猴子都吃了前一天剩下桃子的一半零一个。
到了第n天早上想再吃时,小猴子难过地发现:只剩下一个桃子了。
请问,小猴子第一天总共摘了多少桃子?
输入
第1行:一个正整数m,表示接下来有m个数据点。
第2到m+1行:每行给出一个正整数n(1<=n<=100)。第一天:小猴摘下所有桃子;第n天,只剩一个桃子。
输出
m行:每行对应一个输入数据点,输出小猴子第一天摘桃子的总数。
样例输入
3
4
10
7样例输出
22
1534
190解题提示
本题知识点: 逆向推理、递归终止条件。
从第 n 天只剩 1 个向前推:前一天吃完后剩下 x 个,那么吃之前有 2 × (x + 1) 个。先定义函数参数表示剩余天数,再确定递归的终止条件。
易错点
第 n 天是还没吃时只剩 1 个,因此只需逆推 n−1 次。第一行是数据组数,不是天数;n=1 时答案为 1。
本题答案暂未公开
北京时间 2026/11/16 00:00:00 解锁
8 天 13 小时 16 分 49 秒
正在载入加密答案…
04:公约数和公倍数(递归)
题目描述
求给定两个数的最大公约数和最小公倍数。
本题要求编写函数,使用递归的方法来实现。
输入
共n+1行;第一行为正整数n;
下面紧跟n行,每行包括两个正整数,用空格隔开。
输出
共输出n行;
每行输出最大公约数和最小公倍数,中间用一个空格隔开。
样例输入
3
70 105
7 5
18 24样例输出
35 210
1 35
6 72解题提示
本题知识点: 递归函数、欧几里得算法。
利用两个数的最大公约数等于较小数与余数的最大公约数,将参数不断缩小。余数为 0 时停止,再利用最大公约数计算最小公倍数。
易错点
本题明确要求使用递归函数。最小公倍数应用整数除法计算,避免输出小数;注意多组数据,每行输出两个整数。
本题答案暂未公开
北京时间 2026/11/16 00:00:00 解锁
8 天 13 小时 16 分 49 秒
正在载入加密答案…