Вычислить с помощью рекурсивной функции сумму многочлена 10-й степени по формуле Горнера,...

0 голосов
49 просмотров

Вычислить с помощью рекурсивной функции сумму многочлена 10-й степени по формуле Горнера, где х - вещественное число, вводимое пользователем:

10х^10+9x^9+8x^8+...+2x^2+x=((...((10x+9)x+8)x+...+2)x+1)x

Язык программирование - С++


Информатика (38 баллов) | 49 просмотров
Дан 1 ответ
0 голосов

#include
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;<br>  return 0;
}

(16.7k баллов)