Введение
В этом лабе мы узнаем, как использовать рекурсию для нахождения суммы первых N чисел. Мы напишем программу на языке C, которая будет запрашивать у пользователя ввод, вычислять сумму первых N чисел и выводить результат пользователю. Рекурсия - это техника программирования, при которой функция вызывает сама себя для решения проблемы.
Создание файла и определение главной функции
Сначала мы создадим новый файл с именем main.c. Главная функция запрашивает у пользователя ввод значения N, передает этот ввод в рекурсивную функцию суммы и затем выводит результат.
#include<stdio.h>
int getSum(int);
int main()
{
printf("This program finds the sum of the first N numbers using recursion.\n");
int n, sum;
printf("\nEnter the value of N: ");
scanf("%d", &n);
sum = getSum(n);
printf("\nThe sum of the first %d numbers is %d\n", n, sum);
return 0;
}
Определение рекурсивной функции суммы
В этом шаге мы определим рекурсивную функцию суммы getSum(). Эта функция принимает целый параметр n и возвращает сумму первых n целых чисел. Эта функция вызывается рекурсивно, пока мы не достигнем случая, когда n меньше или равно 0.
int getSum(int n)
{
static int sum = 0;
if (n <= 0) {
return sum;
}
sum += n;
getSum(n-1);
}
static int sum = 0; используется для создания статической локальной переменной. Поскольку это рекурсия, при каждом вызове getSum() будет использоваться та же переменная.
Запуск кода
Теперь программа готова к запуску. Скомпилируйте и запустите программу с использованием следующей команды:
$ gcc main.c -o main
$./main
Полный листинг кода
#include<stdio.h>
int getSum(int);
int main()
{
printf("This program finds the sum of the first N numbers using recursion.\n");
int n, sum;
printf("\nEnter the value of N: ");
scanf("%d", &n);
sum = getSum(n);
printf("\nThe sum of the first %d numbers is %d\n", n, sum);
return 0;
}
int getSum(int n)
{
static int sum = 0;
if (n <= 0) {
return sum;
}
sum += n;
getSum(n-1);
}
Резюме
В этом практическом занятии мы узнали, как использовать рекурсию в программировании на C для нахождения суммы первых N чисел. Мы создали программу, которая принимает ввод от пользователя, использует рекурсивную функцию для вычисления суммы первых N целых чисел и выводит результат пользователю.



