С помощью рекурсивной функции вычислить сумму - C (СИ)
Формулировка задачи:
Дано натуральное n, действительные a1,a2,...,an.С помощью рекурсивной функции вычислить сумму a1*a2+a2*a3+...+an-1*an.
Программный код через printf и scanf
Решение задачи: «С помощью рекурсивной функции вычислить сумму»
textual
Листинг программы
#include <stdio.h>
int Sum(int *A, int n, int i)
{
if (i == (n-1))
return A[i]*A[i+1];
else
return A[i]*A[i+1]+Sum(A,n,i+1);
}
int main(int argc, char* argv[])
{
int Arr[6]={0,1,2,3,4,5};
printf("%d\n",Sum(Arr,5,1));
return 0;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Определяем функцию с именем Sum, которая принимает три аргумента: массив A, его размер n и индекс i.
- В функции Sum используется рекурсивный подход для вычисления суммы элементов массива A.
- Если i равно (n-1), то возвращаем A[i]*A[i+1].
- Если условие не выполняется, то возвращаем A[i]*A[i+1]+Sum(A,n,i+1).
- В функции main создаем массив Arr размером 6 и заполняем его значениями от 0 до 5.
- Вызываем функцию Sum, передавая в качестве аргументов массив Arr, его размер 5 и 1-й элемент массива.
- Выводим результат вычисления функции Sum на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.