Написать рекурсивную функцию для нахождения суммы для любого 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, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д