Я новичок в рекурсивном, и мне трудно понять, как рассчитывается эта рекурсивная факторная функция.Невозможно понять рекурсивный факториал
Когда я пытаюсь запустить через код с моей точки зрения, это, как я себе это:
Если число = 4,
первого возвращения: 4 х 3
второе возвращение : 3 х 2
третье возвращение: 2 х 1
Таким образом, в мой разум - это (4 x 3) * (3 x 2) * (2 x 1), но, очевидно, правильный возврат будет 4 X 3 X 2 X 1. Я хочу, чтобы быть в состоянии понять, как это получить 4 X 3 X 2 X 1.
public static long factorial(long number) {
if (number <= 1)
return 1;
else
{
System.out.println(number + " x " + (number-1));
return number * factorial(number - 1);
}
}
Любая помощь и объяснение было бы весьма признателен.
Ответа на этот вопрос John должен уяснить ваши сомнения, Else try http://www.vogella.com/tutorials/EclipseDebugging/article.html (отладчик используется для идентификации ошибок кода, довольно продвинутой темы для новичков), но поможет очистить логика –
Вы визуализируете линию печати, а не возвращаете. Возврат - это один int. –