Я изучаю Java, используя книгу Java: The Complete Reference. В настоящее время я работаю над рекурсией.
Обратите внимание: В stackoverflow есть похожие вопросы. Я искал их, но я не нашел решения по моему вопросу. Я смущен логикой в следующей программе.
Если я запустил программу ниже, она выдаст правильный вывод, но я не понял логику.
- Я не понял логику в следующей строке: result = fact (n-1) * n;
- Насколько я знаю, если мы передадим значение n = 4, как показано в приведенной ниже программе,
- Затем 3 * 4 сохраняется в результате, т.е. 12.
- И снова возникает факт (n-1). Тогда n становится 3.
- Затем 2 * 3 сохраняется в результате замены предыдущих 12.
-
Я думаю, вы поняли, где я застрял/запутался.
-
Спасибо.
class Calculation { int fact(int n) { int result; if(n==1) return 1; result = fact(n-1) * n; return result; } } public class Factorial { public static void main(String args[]) { Calculation obj_one = new Calculation(); int a = obj_one.fact(4); System.out.println("The factorial of the number is : " + a); } }