编程论坛
注册
登录
编程论坛
→
Python论坛
有个数学题不知道如何写程序,请大神提示一下
djr78
发布于 2019-12-20 07:45, 1160 次点击
糖果店搞活动,3颗糖纸能换1颗糖,现在买了15颗糖,最后能吃多少可糖? 如果是买了N颗糖,最后能吃多少颗,程序不知怎样写,有人指点一下吗?
1 回复
#2
fall_bernana
2019-12-20 09:36
以下是引用
djr78
在2019-12-20 07:45:42的发言:
糖果店搞活动,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
1