👤

Napisz program obliczający rekurencyjnie wartość wielomianu stopnia n z wykorzystaniem schematu Hornera, zgodny z podaną definicją rekurencyjną.

double oblicz(double A [ ], int n, double x)
{
double w=A [0];
for(int i=1,i<=n; i++) w=w*x+A[i];
return w;
}


Odpowiedź :

//schemat Hornera rekurencyjnie

#include <iostream>

using namespace std;

int horner(int n, int wsp[20], int x) {

   if (n==0)return wsp[0];

   else return horner(n-1, wsp, x)*x+wsp[n] ;}

int main() {

   int n,x,a[20];

   cout << "SCHEMAT HORNERA\n" << endl;

   cout << "Podaj stopien wielomianu: ";

   cin >> n;

   cout<< "Podaj X: ";

   cin >> x;

   cout << "Wprowadz wspolczynniki wielomianu: " << endl;

   for (int i=0; i<=n ;i++) cin >> a[i];

   cout << "Wartosc wielomianu wynosi: " << horner(n,a,x) << endl;

   system ("pause");

   return 0;

   }