У меня есть эта функция рекурсии, которую я написал (упрощенно, она намного длиннее, но идея остается прежней)
def rec(point,length):
if 1<length<=8:
str_adj = '23456'
for adj in str_adj:
return rec(adj, length-1)
elif length == 1:
return 1
else:
return 0
rec('1',2)
[Отказ от ответственности: я знаю, что код выглядит странно, и некоторые части не нужны, потому что я упростила функцию ]
Теперь, когда я запускаю этот код, я получаю: 1 , однако вывод должен быть 5 , поскольку я перебираю каждую букву строки '23456' (которая имеет 5 букв), и для каждой буквы я называю ее длиной 1 (поскольку я уменьшаю ее 2-1 = 1), и каждый раз, когда мы получаем длину = 1, мы возвращаем 1, поэтому она должна возвращать 1 пять раз ..
I Я сел для отладки и разбивки кода на несколько частей и перепробовал много разных его версий, таких как удаление return в l oop, но при этом вывод None ...
Может кто-нибудь, пожалуйста, помогите мне определить ошибку? Спасибо! В коде python я пытаюсь сделать следующее:
rec('2',1)+rec('3',1)+rec('4',1)+rec('5',1)+rec('6',1) = 1 + 1 + 1 + 1 +1 = 5
, так как каждый раз, когда мы вызываем re c (?, 1) = 1
Скажем, str_adj = '123456789' и length = 2, тогда я хочу вывести: re c ('1', 1) + re c ('2', 1) + et c .. до + re c ('9', 1)
каждый раз, когда мы вызываем re c (?, 1) = 1, поэтому он должен возвращать 9