Написать рекурсивную функцию для нахождения суммы для любого n, вводимого с клавиатуры - C (СИ)

Узнай цену своей работы

Формулировка задачи:

S=1/(1+1^2)+1/(1+2^2)+1/(1+3^2)+...+1/(1+n^2).

Решение задачи: «Написать рекурсивную функцию для нахождения суммы для любого n, вводимого с клавиатуры»

textual
Листинг программы
#include <stdio.h>
 
double rec(int n)
{
    if (n == 0)
        return .0;
    else
        return 1./(1.+n*n)+rec(n-1);
}
 
int main()
{
    int n;
    printf("n= ");
    scanf("%d", &n);
    printf("%lf\n",rec(n));
    return 0;
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки для работы с вводом/выводом
  2. Рекурсивная функция double rec(int n) принимает целочисленный аргумент n
  3. Проверка условия n == 0, если оно выполняется, то возвращается .0
  4. В противном случае возвращается результат вычисления 1./(1.+n*n)+rec(n-1)
  5. В функции main() объявляется целочисленная переменная n типа int
  6. Выводится сообщение n= и осуществляется ввод значения n с клавиатуры с помощью функции scanf()
  7. Вызывается рекурсивная функция rec(n) и выводится результат с помощью функции printf()
  8. Возвращается 0, чтобы указать, что программа успешно завершилась

Оцени полезность:

14   голосов , оценка 3.571 из 5
Похожие ответы