作者:周竞文(jwzhou@nudt.edu.cn)
来源:国防科技大学期中考试试题(2017 秋)
领域:生活
难度:★★★★★
任务描述
相关知识
编程要求
测试说明
任务描述
某超市促销,举办空酒瓶和酒瓶盖换酒活动,规定 2 个空瓶或 4 个瓶盖可换一瓶酒。若小明最开始买了 n 瓶酒,则他总共能喝到多少瓶酒?
相关知识
参考之前关卡。
编程要求
补全 Begin-End 区间的代码,其功能是根据第一次买的瓶数 n(用变量n表示),计算最多能喝多少瓶酒,说明如下:
1)n的值在程序运行时由系统自动设置(初始代码第 1 行),不要再额外设置,编程时假设其已知即可;
2)不要改动 Begin-End 区间之外的代码。
测试说明
本关共有若干测试集,在每个测试集中,系统会自动设置变量n的值,程序的功能是据此计算最多能喝多少瓶酒。例如,测试集 1 的输入是:
4
测试集 1 的运行结果为:
11
开始你的任务吧,祝你成功!
n = int(input())
########## Begin ##########
p = n # 瓶子
g = n # 瓶盖
s0 = 0
while p>=2 or g>=4:
if p>=2:
t = p//2 #酒瓶换酒瓶
p = p%2+t
g = g + t
s0 = s0 + t
elif g>=4:
t = g//4 #瓶盖换酒瓶
g = g%4+t
p = p + t
s0 = s0 + t
else:
pass
print(n+s0)