Написать рекурсивную функцию для нахождения суммы для любого 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; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки
для работы с вводом/выводом - Рекурсивная функция double rec(int n) принимает целочисленный аргумент n
- Проверка условия n == 0, если оно выполняется, то возвращается .0
- В противном случае возвращается результат вычисления 1./(1.+n*n)+rec(n-1)
- В функции main() объявляется целочисленная переменная n типа int
- Выводится сообщение
n=
и осуществляется ввод значения n с клавиатуры с помощью функции scanf() - Вызывается рекурсивная функция rec(n) и выводится результат с помощью функции printf()
- Возвращается 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д