有个数学题不知道如何写程序,请大神提示一下
糖果店搞活动,3颗糖纸能换1颗糖,现在买了15颗糖,最后能吃多少可糖? 如果是买了N颗糖,最后能吃多少颗,程序不知怎样写,有人指点一下吗?
以下是引用djr78在2019-12-20 07:45:42的发言:
糖果店搞活动,3颗糖纸能换1颗糖,现在买了15颗糖,最后能吃多少可糖? 如果是买了N颗糖,最后能吃多少颗,程序不知怎样写,有人指点一下吗?
糖果店搞活动,3颗糖纸能换1颗糖,现在买了15颗糖,最后能吃多少可糖? 如果是买了N颗糖,最后能吃多少颗,程序不知怎样写,有人指点一下吗?
这就是一个递归
程序代码:
def f(n,d=0): if (n+d)/3>=1: print("糖果数为:%2d;现有的糖纸:%2d;##进入下个循环##:用这些糖果纸兑换的糖果:%d;兑换糖果后剩余的糖果纸值:%d;" % (n,n+d,int((n+d)/3),(n+d)%3)) return n+f(int((n+d)/3),(n+d)%3) else: print("糖果数为:%2d,现有的糖纸:%2d;对应的糖纸不能兑换糖了.循环结束." % (n,d)) return n print("获得的总糖果数:%d" %(f(114))) 糖果数为:114;现有的糖纸:114;##进入下个循环##:用这些糖果纸兑换的糖果:38;兑换糖果后剩余的糖果纸值:0; 糖果数为:38;现有的糖纸:38;##进入下个循环##:用这些糖果纸兑换的糖果:12;兑换糖果后剩余的糖果纸值:2; 糖果数为:12;现有的糖纸:14;##进入下个循环##:用这些糖果纸兑换的糖果:4;兑换糖果后剩余的糖果纸值:2; 糖果数为: 4;现有的糖纸: 6;##进入下个循环##:用这些糖果纸兑换的糖果:2;兑换糖果后剩余的糖果纸值:0; 糖果数为: 2,现有的糖纸: 0;对应的糖纸不能兑换糖了.循环结束. 获得的总糖果数:170