Здравствуйте!
Как факториал n! вычислить в данной ситуации?
Задание Вывести на экран таблицу значений функции Y(x) и ее разложения вряд S(x) для x, изменяющегося от a до bс шагом h = (b –a)/10
Помочь тут
s += (pow(i,2)+1)/k*pow(x/2,i);
Краткий код.
for (i=1; i<=n; i++)
{
k=k+fact(i);
s += (pow(i,2)+1)/k*pow(x/2,i);
}
cout << setw(15) << x << setw(15) << y << setw(15) << s << endl;
x += h;
}
return 0;
}
В Вашем коде стоило изменить лишь строчку
k=k+fact(i)
на
k=k*i
(перед циклом k=1)
Вам не нужно вычислять факториал.
На С++ это будет примерно так:
double sum(double x, unsigned int n)
{
double s = 1.0;
double term = s;
for(int k = 1; k <= n; ++k)
s += (term *= (k*k+1)*x/(2.0*k*((k-2)*k+2)));
return s;
}
int main(int argc, const char * argv[])
{
unsigned int n = 20;
double a = 0, b = 1; // Сами вводите...
for(double x = a; x <= b; x += (b-a)/10)
cout << x << " " << sum(x,n) << " " << (x*x/4.0+x/2.0+1.0)*exp(x/2.0) << endl;
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники