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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. double rec(int n)
  4. {
  5.     if (n == 0)
  6.         return .0;
  7.     else
  8.         return 1./(1.+n*n)+rec(n-1);
  9. }
  10.  
  11. int main()
  12. {
  13.     int n;
  14.     printf("n= ");
  15.     scanf("%d", &n);
  16.     printf("%lf\n",rec(n));
  17.     return 0;
  18. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы