Дано вещественное целое число x, целое n, n>0. Найти значение многочлена n-й степени P(x) в точке x по схеме Горнера: P(x)=a[n]*x^n+a[n-1]*x^(n-1)+..+a[1]*x+a[0]=((..(a[n]*x+a[n-1])*x+..)*x+a[1])*x+a[0] Значения коэффициентов a[i]=2^i (i=0,1,2,..,n)- C++(Си)

//Дано вещественное целое число x, целое n, n > 0. 
//Найти значение многочлена n-й степени P(x) в точке x по схеме Горнера: 
//P(x)=a[n]*x^n+a[n-1]*x^(n-1)+..+a[1]*x+a[0]=((..(a[n]*x+a[n-1])*x+..)*x+a[1])*x+a[0]
//Значения коэффициентов a[i]=2^i (i=0,1,2,..,n).
#include <iostream>
 
double gorner(int n, double x)
{    
    return !n-- ? 1 : 1 + 2 * x * gorner(n, x);
}
 
int main()
{
    std::locale::global(std::locale(""));
    int n; 
 
    for(;;)
    {
        do
        {
            std::cout << "Введите степень многочлена: ";                   
            std::cin >> n;         
        }while(n < 0);
 
        std::cout << "Введите значение x: ";
        double x;
        std::cin >> x;
 
        std::cout << "Ответ: "                  
                  << gorner(n, x)                      
                  << std::endl
                  << std::endl;      
    }//for(;;) 
    
    return 0; 
}

Результат работы программы

Leave a Comment