Найти сумму тех членов ряда, модуль которых больше или равен заданному e - C (СИ)
Формулировка задачи:
Даны числовой ряд и некоторое число e. Найти сумму тех членов ряда,модуль которых больше или равен заданному e. Общий член ряда имеет вид:
Решение задачи: «Найти сумму тех членов ряда, модуль которых больше или равен заданному e»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
long unsigned fact(unsigned i)
{
if (i == 0) return 1;
else return i*fact(i-1);
}
int main()
{
int n;
double e, sum = 0.0;
scanf("%d%lf",&n,&e);
for(int i = 1; i <= n; i ++)
{
double a = pow(2,i)/fact(i-1);
if (fabs(a) >= e) sum += a;
}
printf("%lf",sum);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Сначала мы включаем необходимые библиотеки: iostream для ввода-вывода и math.h для работы с математическими функциями.
- Затем определяем функцию fact, которая вычисляет факториал числа. Факториал числа i вычисляется как i*fact(i-1), если i не равно 0. Если i равно 0, то возвращается 1.
- В функции main мы объявляем переменные: n (количество членов ряда), e (пороговое значение модуля), sum (сумма членов ряда).
- Затем мы считываем значения переменных n и e с помощью функции scanf.
- Далее у нас есть цикл for, который начинается с 1 и идет до n. В каждой итерации вычисляется значение a как pow(2,i)/fact(i-1). Если модуль a больше или равен e, то a добавляется к sum.
- После завершения цикла мы выводим значение sum с помощью функции printf.
- Наконец, функция main возвращает 0, что означает успешный конец работы программы.