V tomto příkladu se naučíte najít součet přirozených čísel pomocí rekurzivní funkce.
Abychom pochopili tento příklad, měli byste mít znalosti o následujících programovacích tématech jazyka C:
- C Uživatelem definované funkce
- C Rekurze
Kladná čísla 1, 2, 3… jsou známá jako přirozená čísla. Níže uvedený program vezme od uživatele kladné celé číslo a vypočítá součet až do daného čísla.
Na této stránce naleznete součet přirozených čísel pomocí smyčky.
Součet přirozených čísel pomocí rekurze
#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; )
Výstup
Zadejte kladné celé číslo: 20 Součet = 210
Předpokládejme, že uživatel zadal 20.
Zpočátku addNumbers()
je volán od main()
s 20 předán jako argument.
Číslo 20 se přičte k výsledku addNumbers(19)
.
V dalším volání funkce od addNumbers()
do addNumbers()
je předáno 19, které je přidáno k výsledku addNumbers(18)
. Tento proces pokračuje, dokud n není rovno 0.
Když n je rovno 0, není rekurzivní volání. Tím se nakonec vrátí součet celých čísel do main()
funkce.