W tym przykładzie nauczysz się znajdować sumę liczb naturalnych za pomocą funkcji rekurencyjnej.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w C:
- C Funkcje zdefiniowane przez użytkownika
- C Rekursja
Liczby dodatnie 1, 2, 3… znane są jako liczby naturalne. Poniższy program pobiera od użytkownika dodatnią liczbę całkowitą i oblicza sumę do podanej liczby.
Odwiedź tę stronę, aby znaleźć sumę liczb naturalnych za pomocą pętli.
Suma liczb naturalnych z rekurencją
#include int addNumbers(int n); int main() ( int num; printf("Enter a positive integer: "); scanf("%d", &num); printf("Sum = %d", addNumbers(num)); return 0; ) int addNumbers(int n) ( if (n != 0) return n + addNumbers(n - 1); else return n; )
Wynik
Wpisz dodatnią liczbę całkowitą: 20 Suma = 210
Załóżmy, że użytkownik wprowadził 20.
Początkowo addNumbers()
jest wywoływana from main()
z 20 przekazanymi jako argument.
Liczba 20 jest dodawana do wyniku addNumbers(19)
.
W następnym wywołaniu funkcji od addNumbers()
do addNumbers()
przekazywana jest liczba 19, która jest dodawana do wyniku addNumbers(18)
. Ten proces trwa, aż n jest równe 0.
Gdy n jest równe 0, nie ma wywołania rekurencyjnego. To zwraca ostatecznie sumę liczb całkowitych do main()
funkcji.