#c_sharp #cpp #алгоритм #математика
Здравствуйте! Как факториал 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; }
Ответы
Ответ 1
В Вашем коде стоило изменить лишь строчку k=k+fact(i) на k=k*i (перед циклом k=1)Ответ 2
Вам не нужно вычислять факториал. На С++ это будет примерно так: 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; }
Комментариев нет:
Отправить комментарий