闯关游戏:求在某种规则下消耗钻石数量

闯关游戏:选手闯过第n关需要消耗1* n个红钻石,2* n个黄钻石,3* n个绿钻石,每次过关依次得到红、黄、绿中的一种作为奖励,数目为闯关消耗的2倍。问闯过第n关需要准备各色钻石多少个。

'''

n1:红钻石
n2:黄钻石
n3:绿钻石
'''
n = int(input())
print("闯过数:", n)
n1 = 0
n2 = 0
n3 = 0
#对各种钻石创建不同列表,记录整个循环过程中的各个钻石状态,方便之后找到最大的值(闯过n关至少需要的钻石数量)
list_n1 = []
list_n2 = []
list_n3 = []
for i in range(1, n + 1):
    n1 += i
    n2 += i * 2
    n3 += i * 3
    list_n1.append(n1)
    list_n2.append(n2)
    list_n3.append(n3)
    #闯的最后一关得到的奖励和需要的钻石数量无关
    if i == n:
        pass
    elif i % 3 == 2:
        n2 -= 4 * i
        list_n2.append(n2)
    elif i % 3 == 0:
        n3 -= 6 * i
        list_n3.append(n3)
    else:
        n1 -= 2 * i
        list_n1.append(n1)
print('至少需要有红、黄、绿钻石:', max(list_n1), max(list_n2), max(list_n3))



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值