Конец хвоста против факториала форварда в питоне

У меня есть какая-то ручка с рекурсией. Рекурсивная функция - это функция, которая вызывает себя для запуска, что-то вроде цикла. Однако у меня проблема с хвостовой и прямой рекурсией.

Из того, что я понимаю, хвостовой конец выполняет вычисления на месте, а forward выполняет их в конце "рекурсивного цикла". Я должен сделать 2 факторных функции, и я бродил, могу ли я получить некоторую информацию о том, нахожусь ли я на правильном пути или нет. Спасибо

def tailfactorial(n,counter):
    if counter == 0:
        return n    
    else:
        return tailfactorial(n * counter ,counter-1)
print(tailfactorial(6,5))
#tailfactorial(6,5)
#tailfactorial(30,4)
#tailfactorial(120,3)
#tailfactorial(360,2)
#tailfactorial(720,1)
#tailfactorial(720,0)
#720

def factorialforward(n):
    if n==0:
        return 1
    else:
        return n * factorialforward(n-1)
print(factorialforward(6))
#factorialforward(6)
#6 * factorialforward(5)
#6 * 5 * factorialforward(4)
#6 * 5 * 4 * factorialforward(3)
#6 * 5 * 4 * 3 * factorialforward(2)
#6 * 5 * 4 * 3 * 2 * factorialforward(1)
#6 * 5 * 4 * 3 * 2 * 1 * factorialforward(0)
#6 * 5 * 4 * 3 * 2 * 1 * 1 = 720

0 ответов

Другие вопросы по тегам