Program w C do znajdowania silni liczby przy użyciu rekurencji

W tym przykładzie nauczysz się znajdować silnię nieujemnej liczby całkowitej wprowadzonej przez użytkownika za pomocą rekursji.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w C:

  • Funkcje C
  • C Funkcje zdefiniowane przez użytkownika
  • C Rekursja

Silnia liczby dodatniej n jest wyrażona wzorem:

factorial of n (n!) = 1 * 2 * 3 * 4 *… * n 

Silnia liczby ujemnej nie istnieje. A silnia 0jest 1.

W tym przykładzie nauczysz się znajdować silnię liczby za pomocą rekurencji. Odwiedź tę stronę, aby dowiedzieć się, jak znaleźć silnię liczby za pomocą pętli.

Silnia liczby przy użyciu rekurencji

#include long int multiplyNumbers(int n); int main() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); printf("Factorial of %d = %ld", n, multiplyNumbers(n)); return 0; ) long int multiplyNumbers(int n) ( if (n>=1) return n*multiplyNumbers(n-1); else return 1; ) 

Wynik

Wpisz dodatnią liczbę całkowitą: 6 Silnia 6 = 720 

Załóżmy, że użytkownik wprowadził 6.

Początkowo multiplyNumbers()wywoływana jest from main()z 6 przekazanym jako argument.

Następnie 5 jest przekazywane multiplyNumbers()z tej samej funkcji (wywołanie rekurencyjne). W każdym wywołaniu rekurencyjnym wartość argumentu n jest zmniejszana o 1.

Gdy wartość n jest mniejsza niż 1, nie ma wywołania rekurencyjnego, a silnia jest ostatecznie zwracana do main()funkcji.

Interesujące artykuły...