Это очень простой код вместо большой проблемы, но я надеюсь, что смогу справиться с ним кусками.Я начну с моей первой проблемы.
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]
любая помощь будетбыть оцененным, я новичок в рекурсии, и это заставляет мою голову болеть.