【发布时间】:2012-04-11 10:07:38
【问题描述】:
这是一个非常简单的代码,而不是一个更大的问题,但我希望我可以分块解决它。我将从我的第一个问题开始。
def testrecurse(z,target):
x=[]
if z<target:
z*=2
x.append(z)
x.extend(testrecurse(z,target))
return x
这是一个测试函数,可以帮助我的大脑进行递归。它需要一个数字,然后显示所有 2 的乘法,直到它达到目标数字。所以如果我输入:
testrecurse(1,1000)
我收到:
[2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
太棒了!输出看起来又好又干净。但这是我的问题,我很难在输出中附加或添加第一个值。这是我希望输出的样子。
[1,2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
我尝试过改变
x=[] to x=[z]
但后来我收到:
[1, 2, 2, 4, 4, 8, 8, 16, 16, 32, 32, 64, 64, 128, 128, 256, 256, 512, 512, 1024, 1024]
任何帮助将不胜感激,我是递归的新手,这让我很头疼。
【问题讨论】:
-
在乘以 2 之前尝试追加,并将
if z<target改为使用 -
哦,谢谢你,我没有意识到像这样简单的改变会解决它。
标签: python list function recursion extend