7届省赛java试题 7: 饮料换购

饮料换购


乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能得到多少瓶饮料。
输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数
例如:
用户输入:
100
程序应该输出:
149
用户输入:
101
程序应该输出:
151
思路:
题目的意思就是最后可以喝多少瓶,我们知道最瓶盖少于3的时候就是可以喝到饮料的瓶数了,我用的递归的思想,dfs(m,n) 我假设m是饮料数,n是剩余的瓶盖,n+=m就是多少瓶饮料就是多少盖子然后通过后面的计算然后就可以得出结果了。
程序:

a=int(input())
con=a
def dfs(m,n):
    n+=m
    global con
    if n<3:
        return  con
    else:
        m=n//3
        n=n%3
        con+=m
    dfs(m,n)
    return con
print(dfs(a,0))

禁止转载。仅用于自己学习。对程序错误不负责。

猜你喜欢

转载自blog.csdn.net/weixin_46640345/article/details/112860598
今日推荐