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