У цьому прикладі ви навчитеся знаходити суму натуральних чисел за допомогою рекурсивної функції.
Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування на С:
- 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()
функції.