Factorial est souvent utilisé comme un exemple de quelque chose qui peut être réalisée en utilisant récursion .
Par exemple, factoriel 5 est calculé comme suit:
5! = 5 * 4 * 3 * 2 * 1
De plus, il y a une autre façon de penser:
5! = 5 * 4!
4! = 4 * 3!
3! = 3 * 2!
2! = 2 * 1!
1! = 1
La façon dont la deuxième série d'égalités sont écrits, on peut voir qu'une factorielle peut être calculée de manière récursive. Par exemple:
5! = 5 * 4! --> 5! = 5 * (4 * 3!) --> 5! = 5 * (4 * (3 * 2!)) --> and so on.
La fonction fact
dans la question exécute la fonction factoriel comme écrit dans la deuxième série d'égalités:
fact(n) = n * fact(n-1);
Ainsi, lorsque la méthode fact
est appelée, elle est ainsi être appelé peut être considéré comme quelque chose comme ce qui suit:
fact(5) --> fact(5 * fact(4)) --> fact(5 * fact(4 * fact(3))) --> and so on.
en outre, il convient de noter que Kip souligne la co Le calcul de la factorielle d'un nombre peut être facilement et rapidement calculé en itérant sur la plage de nombres de n
à 1
et en le multipliant ensemble pour calculer le résultat.
pourquoi vous attendez factoriel de 4 à être 12 ?? vous pouvez voir factorielle de 3 est 6. si * n * est 4, alors 'fait (n-1) * n' est' fait (3) * 4' est '6 * 4' est 24. – Kip