Tenho o seguinte código:
int factR(int n) {
int result;
if(n==1)
return 1;
result = factR(n-1) * n;
return result;
}
Dentro do main tem:
public static void main(String args[]) {
Factorial f = new Factorial();
System.out.println("Factorial of 5 is " + f.factR(5));
}
Minha duvida é a seguinte:
quando entrar no método
if(5 == 1) false sai fora
result = factR(5-1) * 5;
isso significa que 5 -1 = 4
4 * 5 = 20
sendo que não tem nenhum laço como esse resultado pode ser 120?