English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo esempio, imparerai a trovare il fattoriale di un numero non negativo inserito dall'utente utilizzando la ricorsione.
Per comprendere questo esempio, dovresti conoscere i seguentiProgrammazione in CArgomento:
Il fattoriale di un numero positivo n è dato dalla seguente formula:
fattoriale di n (n!) = 1 * 2 * 3 * 4 * ... * n
Il fattoriale dei numeri negativi non esiste. Il fattoriale di 0 è 1.
In questo esempio, imparerai a trovare il fattoriale di un numero utilizzando la ricorsione. Visita questa pagina per sapere comeCalcolo del fattoriale iterativo.
#include<stdio.h> long int multiplyNumbers(int n); int main() { int n; printf("Inserisci un numero intero positivo: "); scanf("%d",&n); printf("%d il fattoriale = %ld", n, multiplyNumbers(n)); return 0; } long int multiplyNumbers(int n) { if (n>=1) return n*multiplyNumbers(n-1); else return 1; }
Risultato di output
Inserisci un numero intero positivo: 6 Il fattoriale di 6 = 720
Supponiamo che l'utente abbia inserito 6.
最初,从main()调用multipleNumbers(),并将6作为参数传递。
然后,将5从同一函数传递给multipleNumbers()(递归调用)。在每个递归调用中,参数n的值都减1。
当n的值小于1时,没有递归调用,并且阶乘最终返回给main()函数。