一、简答题
1、36.无人机社团
小明参加了一个无人机社团,现有n架无人机,编号为1, 2, 3, ..., n,依照规则出队执行任务。规则:从队列中按顺序出队第 k 架无人机,直到剩下最后一架无人机时,它将完成最终任务。现在需要计算第m架被出队的无人机的编号,请补充完成该程序。
def solve(n, k, m):
if ① : #递归终止条件:当排除第1架时
return (n + k - 1) % ② #计算首轮被排除的位置
else:
return (solve( ③ ) + k) % n
n, k, m = map(int, input().split())
print( ④ )
2、37.岩浆活动
2024年,我国科学家通过对嫦娥六号月壤样品的分析研究,发现月球背面某区域的岩浆活动层数呈现递减规律:最上层有n层岩浆活动,下一层岩浆活动层数是上一层的三分之一(向下取整),直到层数小于等于1时停止。
此外,每层岩浆活动有一个厚度值,最上层厚度为t,下一层厚度为上一层的0.5倍。
请完善以下程序,计算该区域的总岩浆活动层数和总厚度。
def moon(n, t):
"""
计算月球某区域的总岩浆活动层数和总厚度
n: 最上层的岩浆活动层数
t: 最上层的岩浆活动厚度
return: (总层数, 总厚度)
"""
if ① :
return 1, t
else:
sub_layers, sub_thickness = moon(n // 3, ② )
return ③ , t + sub_thickness
\# 测试代码
n = int(input("请输入最上层的岩浆活动层数:"))
t = float(input("请输入最上层的岩浆活动厚度:"))
total_layers, total_thickness = ④
print(f"该区域的总岩浆活动层数为:{total_layers}")
print(f"该区域的总岩浆活动厚度为:{total_thickness}")
3、38.收费标准
某快递公司对于不同重量的包裹和不同的寄送距离有不同的收费标准。该公司将寄送距离分为两个区间:
在距离 distance 小于或等于 1000 公里时,如果包裹重量weight小于等于 2 千克,收费 base_near 元;如果重量大于 2 千克,超出 2 千克的部分每千克收费 extra_near 元。
在距离大于 1000 公里时,如果包裹重量小于等于 2 千克,收费 base_far 元;如果重量大于 2 千克,超出 2 千克的部分每千克收费 extra_far 元。编写一个函数来计算包裹的快递费用,完善空白处代码。
def courier_fee(weight, distance, base_near, extra__near, base_far, extra_far):
if distance <= 1000:
if ① :
fee = base_near
else:
②
fee = base_near + extra_charge
else:
if weight <= 2:
fee = ③
else:
④
fee = base_far + extra_charge
return fee
\# 调用函数计算快递费用
result = courier_fee(5, 1500, 10, 3, 15, 5)
print(result)
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!




