Java教程

算法空瓶换酒

本文主要是介绍算法空瓶换酒,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

空瓶换酒
900
任务要求
参考答案
评论151
作者:周竞文(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)  
这篇关于算法空瓶换酒的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!