В този пример ще се научите да намирате сумата от естествени числа с помощта на рекурсивна функция.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C:
- C Потребителски дефинирани функции
- C Рекурсия
Положителните числа 1, 2, 3 … са известни като естествени числа. Програмата по-долу взема положително цяло число от потребителя и изчислява сумата до даденото число.
Посетете тази страница, за да намерите сумата от естествени числа с помощта на цикъл.
Сума от естествени числа, използващи рекурсия
#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; )
Изход
Въведете положително цяло число: 20 Сума = 210
Да предположим, че потребителят е въвел 20.
Първоначално addNumbers()
се извиква от main()
с 20, подадени като аргумент.
Числото 20 се добавя към резултата от addNumbers(19)
.
При следващото извикване на функция от addNumbers()
до addNumbers()
се предава 19, което се добавя към резултата от addNumbers(18)
. Този процес продължава, докато n е равно на 0.
Когато n е равно на 0, няма рекурсивно повикване. Това връща сумата от цели числа в крайна сметка към main()
функцията.