C/C++

Для заданных с клавиатуры значений переменных x и n вычислить

Для заданных с клавиатуры значений переменных x и n вычислить
#include <stdio.h>

int fact(int n)
{
int num = 1;
for(int x = 2; x <= n; x++)
num *= x;
return num;
}

double my_pow(double n, int p)
{
double num = 1.0;
for(int x = 1; x <= p; x++)
num *= n;
return num;
}

int main()
{
int n;
double x,Y = 1.0;
do
{
printf("Введите n: ");
scanf("%d", &n);
} while(n < 1);
printf("Введите x: ");
scanf("%lf", &x);
for(int i = 1; i <= n; i++)
{
Y += my_pow(x,2*i) / fact(i);
}
printf("\nY = %lf\n", Y);
return 0;
}
Виктор Попов
Виктор Попов
60 798
Лучший ответ
А n -это что? В примере изображена сумма единицы и ещё десяти слагаемых. Может быть, n -это количество слагаемых после единицы? Ещё похоже, что в примере одна i лишняя при записи числителя общего члена ряда: x²i/i!=x²/(i-1)!, поэтому сумма должна быть 1+x²/0!+x²/1!+..+x²⁰/19!, а если сумма записана правильно, тогда i там точно лишняя. Вот как надо с любым n, a не только с n=10:
#include <iostream>
using namespace std;
int main() { double x, xx, Y, z, i, n;
cout.precision(16); cout << "x n: ";
cin >> x >> n; xx = x * x; Y = z = 1.;
for (i = 1; i <= n; i++) { z *= xx / i;
Y += z; } cout << Y << endl; }
На чистом Си:
#include <stdio.h>
int main() { double i, n, x, xx, Y, z; printf("x n: ");
scanf("%lf%lf", &x, &n); xx = x * x; Y = z = 1.;
for (i = 1; i <= n; i++) { z *= xx / i; Y += z; }
printf("%.16g\n", Y); }
#include<stdio.h>
#include<math.h>

long int fl;

long int Fact(int n)
{
fl = 1;
for(int i = 1; i <= n; i++)
fl*=i;
return fl;
}

int main()
{
long double res=0.0;
int x;
printf("Enter x: ");
scanf("%d",&x);
printf("\n1");
for(int i = 1; i <= 10; i++)
{
res+=pow(x,2*i)/Fact(i);
printf(" + (%d^2*%d)/%d!",x,i,i);
}
printf(" = %.2lf",1+res);
system("pause");
return 0;
}
Матвей Дядичко
Матвей Дядичко
37 945

Похожие вопросы