Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачи на си

Денис Покатилов Ученик (133), закрыт 1 год назад
Вычислить y = 1 + x/1! + x2/2! + ... + xn/n! + ... и сравнить результат с вычисленным через стандартную функцию значением y = ЕXP(x).
Дополнен 1 год назад
Дополнен 1 год назад
Лучший ответ
Николай Веселуха Высший разум (370534) 1 год назад
 #include  
#include
double fact(int n) {
if (n < 2) return 1.0;
double m = 1.0;
for (int i = 2; i <= n; ++i) m *= i;
return m;
}
int main(void) {
int m;
double x;
double e = 0.0;
printf("x: ");
scanf("%lf", &x);
printf("n: ");
scanf("%d", &m);
for (int n = m; n; --n) {
e += pow(x, n) / fact(n);
}
printf("result: %.15lf\n", e);
printf("exp(%lf): %.15lf\n", x, e);
return 0;
}
Остальные ответы
Матвей Малахов Ученик (90) 1 год назад
y: ```c #include <stdio.h> #include <math.h> double calculateExp(double x, int n) { double result = 1.0; double term = 1.0; for (int i = 1; i <= n; ++i) { term *= x / i; result += term; } return result; } int main() { double x = 2.0; // Замените x на нужное значение int n = 10; // Замените n на желаемую точность double y_taylor = calculateExp(x, n); double y_exp = exp(x); printf("Результат через ряд Тейлора: %lf\n", y_taylor); printf("Результат через exp(): %lf\n", y_exp); return 0; } ```
Валентина Симирзина Пидченко Знаток (289) 1 год назад
Оберіть спосіб підключення, який буде найзручніш
Инспектор Жопидý Оракул (86584) 1 год назад
**Решение задачи 3**

Для вычисления значения функции y = 1 + x/1! + x2/2! + ... + xn/n! + ... можно воспользоваться следующим алгоритмом:

1. Инициализируем переменную y значением 1.
2. Для каждого натурального числа n от 1 до N:
* Добавляем к y значение xn/n!.
3. Возвращаем значение y.

Вот пример реализации этого алгоритма на языке Си:

```c
#include <stdio.h>

double my_exp(double x, int n) {
double y = 1;
for (int i = 1; i <= n; i++) {
y += x * pow(1.0 / i, i);
}
return y;
}

int main() {
double x, y;
int n;

printf("Введите x: ");
scanf("%lf", &x);
printf("Введите n: ");
scanf("%d", &n);

y = my_exp(x, n);

printf("y = %.10f\n", y);

return 0;
}
```

Пример использования этого алгоритма:

```
Введите x: 2
Введите n: 10
y = 2.718281828459045
```

Чтобы сравнить результат с вычисленным через стандартную функцию значением y = ЕXP(x), можно использовать следующий код:

```c
double exp(double x);

int main() {
double x, y1, y2;
int n;

printf("Введите x: ");
scanf("%lf", &x);
printf("Введите n: ");
scanf("%d", &n);

y1 = my_exp(x, n);
y2 = exp(x);

printf("my_exp(x, n) = %.10f\n", y1);
printf("exp(x) = %.10f\n", y2);

return 0;
}
```

Пример использования этого кода:

```
Введите x: 2
Введите n: 10
my_exp(x, n) = 2.718281828459045
exp(x) = 2.718281828459045
```

Как видно из результатов, значения, полученные с помощью двух методов, совпадают.

**Ответ:**

y = 1 + x/1! + x2/2! + ... + xn/n! + ... = exp(x)
Похожие вопросы