Я изучаю Java из книги и встречаю главу о рекурсии с использованием факториала.Учебное пособие по рекурсии
//A simple example of recursion
package tutorials;
class Factorial {
// this is a recursive method
int fact (int n) {
int result;
if(n==1) return 1;
result = fact(n - 1) * n;
return result;
}
}
class Recursion {
public static void main(String args[]) {
Factorial f = new Factorial();
System.out.println("Factorial of 3 is " + f.fact(3));
System.out.println("Factorial of 4 is " + f.fact(4));
System.out.println("Factorial of 5 is " + f.fact(5));
}
}
В результате этот кусок кода дает это «Факториал 3 является 6» и «Факториал 4 равен 24»
Что я не понимаю, что происходит в классе Факториал и почему * n не рассчитывается немедленно. Книга не очень хорошо объясняет это, поэтому я подумал, что я попрошу помочь опытным программистам.
Потому что в области информатики и программирования вы хотите сэкономить как можно больше вычислительных средств. выполнение рекурсивного * N - это налогообложение в системе. Помещение вниз по линии и ожидание рекурсии до достижения «1» - очень желательный метод. – booky99
Этот вопрос http://programmers.stackexchange.com/questions/25052/in-plain-english-what-is-recursion может быть хорошим местом для начала. –
Держитесь подальше от рекурсии и используйте ее, только если вам нужно –