这只是一个代替更大问题的非常简单的代码,但我希望我能够分块处理它。我将从我的第一个问题开始。
def testrecurse(z,target):
x=[]
if z<target:
z*=2
x.append(z)
x.extend(testrecurse(z,target))
return x
这是一个测试函数,用于帮助我理解递归。它接收一个数字,并显示所有的乘法结果,直到达到目标数字。例如,如果我输入:
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]
希望能得到任何帮助,我对递归很陌生,这让我感到头痛。