Составить программу для вычисления выражения с заданной точностью - C (СИ) (74216)
Формулировка задачи:
Помогите пожалуйста составить программу для вычисления е = 1 +1 / 1! +1 / 2! +1 / 3! + ... с заданной точностью Ε
Решение задачи: «Составить программу для вычисления выражения с заданной точностью»
textual
Листинг программы
#include <stdio.h>
int factorial(int n) {
if ( n > 1 ) {
return factorial(n-1) * n;
}
if ( n < 0 ) {
return -2;
}
return 1;
}
int main() {
int e;
float sum = 1.0;
scanf("%d", &e);
if ( e < 0 ) {
return 0;
}
for ( int i = 1; i <= e; i++ ) {
sum += 1.0 / factorial(i);
}
printf("%0.2f\n", sum);
return 0;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Определяем функцию
factorial, которая вычисляет факториал числа - Если число больше 1, то рекурсивно вызываем функцию
factorialдля вычисления факториала числа на единицу меньше и умножаем результат на само число - Если число меньше или равно нулю, то возвращаем -2
- Если число больше 1, то возвращаем 1
- В функции
mainопределяем переменную типаintдля хранения числа e - Определяем переменную
sumдля хранения суммы чисел - Считываем число e с помощью функции
scanf - Если число e меньше 0, то выходим из программы
- Используем цикл
forдля перебора чисел от 1 до e - Внутри цикла добавляем 1/факториал числа к переменной
sum - Выводим значение переменной
sumс помощью функцииprintf - Возвращаем 0, чтобы указать, что программа успешно завершилась