Предмет: Информатика,
автор: kargapolovarte
Вычислить с помощью рекурсивной функции сумму многочлена 10-й степени по формуле Горнера, где х - вещественное число, вводимое пользователем:
10х^10+9x^9+8x^8+...+2x^2+x=((...((10x+9)x+8)x+...+2)x+1)x
Язык программирование - С++
Ответы
Автор ответа:
0
#include <iostream>
using namespace std;
double val, p;
//вводимые параметры значения функции и степень полинома
//x - значение функции
//res - значение, которое изменяется в процессе рекурсии по схеме Горнера
//s - рассматриваемая текущая степень x
double rec(double x, double res, double s)
{
if (s == 0.0)
return res;
return rec(x, x * res + s - 1, s - 1);
}
int main(){
cin >> val >> p;
//старший коэффициент в схеме Горнера сначала сносится вниз,
//поэтому его передаем в качестве начального параметра для результата
cout << fixed << rec(val, p, p) << endl;
return 0;
}
using namespace std;
double val, p;
//вводимые параметры значения функции и степень полинома
//x - значение функции
//res - значение, которое изменяется в процессе рекурсии по схеме Горнера
//s - рассматриваемая текущая степень x
double rec(double x, double res, double s)
{
if (s == 0.0)
return res;
return rec(x, x * res + s - 1, s - 1);
}
int main(){
cin >> val >> p;
//старший коэффициент в схеме Горнера сначала сносится вниз,
//поэтому его передаем в качестве начального параметра для результата
cout << fixed << rec(val, p, p) << endl;
return 0;
}
Похожие вопросы
Предмет: История,
автор: elina03032016
Предмет: Физика,
автор: valentina02117966
Предмет: Физкультура и спорт,
автор: lhcydyistidyl
Предмет: Биология,
автор: этрос
Предмет: Алгебра,
автор: katrina545