#include <iostream>
#include <vector>
using namespace std;
// Funkcja 1: wczytuje stopień i współczynniki wielomianu
vector<double> wczytajWielomian(int &stopien)
{
stopien = 3; // stopień wielomianu
vector<double> a(stopien + 1);
// współczynniki: a3, a2, a1, a0
a[0] = 2; // a3
a[1] = 3; // a2
a[2] = 4; // a1
a[3] = 5; // a0
return a;
}
// Funkcja 2: oblicza wartość wielomianu metodą Hornera
double horner(const vector<double> &a, int stopien, double x)
{
double wynik = a[0];
for (int i = 1; i <= stopien; i++)
{
wynik = wynik * x + a[i];
}
return wynik;
}
int main()
{
int stopien;
double x = 3; // punkt, w którym liczymy W(x)
vector<double> wspolczynniki = wczytajWielomian(stopien);
// Wyświetlamy współczynniki
cout << "Stopien wielomianu: " << stopien << endl;
cout << "Wspolczynniki:" << endl;
cout << "a3 = " << wspolczynniki[0] << endl;
cout << "a2 = " << wspolczynniki[1] << endl;
cout << "a1 = " << wspolczynniki[2] << endl;
cout << "a0 = " << wspolczynniki[3] << endl;
// Obliczamy wartość wielomianu
double wartosc = horner(wspolczynniki, stopien, x);
cout << "W(" << x << ") = " << wartosc << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmtjamEgMTogd2N6eXR1amUgc3RvcGllxYQgaSB3c3DDs8WCY3p5bm5pa2kgd2llbG9taWFudQp2ZWN0b3I8ZG91YmxlPiB3Y3p5dGFqV2llbG9taWFuKGludCAmc3RvcGllbikKewogICAgc3RvcGllbiA9IDM7ICAvLyBzdG9waWXFhCB3aWVsb21pYW51CiAgICB2ZWN0b3I8ZG91YmxlPiBhKHN0b3BpZW4gKyAxKTsKCiAgICAvLyB3c3DDs8WCY3p5bm5pa2k6IGEzLCBhMiwgYTEsIGEwCiAgICBhWzBdID0gMjsgLy8gYTMKICAgIGFbMV0gPSAzOyAvLyBhMgogICAgYVsyXSA9IDQ7IC8vIGExCiAgICBhWzNdID0gNTsgLy8gYTAKCiAgICByZXR1cm4gYTsKfQoKLy8gRnVua2NqYSAyOiBvYmxpY3phIHdhcnRvxZvEhyB3aWVsb21pYW51IG1ldG9kxIUgSG9ybmVyYQpkb3VibGUgaG9ybmVyKGNvbnN0IHZlY3Rvcjxkb3VibGU+ICZhLCBpbnQgc3RvcGllbiwgZG91YmxlIHgpCnsKICAgIGRvdWJsZSB3eW5payA9IGFbMF07CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBzdG9waWVuOyBpKyspCiAgICB7CiAgICAgICAgd3luaWsgPSB3eW5payAqIHggKyBhW2ldOwogICAgfQogICAgcmV0dXJuIHd5bmlrOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBzdG9waWVuOwogICAgZG91YmxlIHggPSAzOyAgLy8gcHVua3QsIHcga3TDs3J5bSBsaWN6eW15IFcoeCkKCiAgICB2ZWN0b3I8ZG91YmxlPiB3c3BvbGN6eW5uaWtpID0gd2N6eXRhaldpZWxvbWlhbihzdG9waWVuKTsKCiAgICAvLyBXecWbd2lldGxhbXkgd3Nww7PFgmN6eW5uaWtpCiAgICBjb3V0IDw8ICJTdG9waWVuIHdpZWxvbWlhbnU6ICIgPDwgc3RvcGllbiA8PCBlbmRsOwogICAgY291dCA8PCAiV3Nwb2xjenlubmlraToiIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJhMyA9ICIgPDwgd3Nwb2xjenlubmlraVswXSA8PCBlbmRsOwogICAgY291dCA8PCAiYTIgPSAiIDw8IHdzcG9sY3p5bm5pa2lbMV0gPDwgZW5kbDsKICAgIGNvdXQgPDwgImExID0gIiA8PCB3c3BvbGN6eW5uaWtpWzJdIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJhMCA9ICIgPDwgd3Nwb2xjenlubmlraVszXSA8PCBlbmRsOwoKICAgIC8vIE9ibGljemFteSB3YXJ0b8WbxIcgd2llbG9taWFudQogICAgZG91YmxlIHdhcnRvc2MgPSBob3JuZXIod3Nwb2xjenlubmlraSwgc3RvcGllbiwgeCk7CiAgICBjb3V0IDw8ICJXKCIgPDwgeCA8PCAiKSA9ICIgPDwgd2FydG9zYyA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==