#include <iostream>
#include <vector>
using namespace std;
// Funkcja wczytująca stopień wielomianu i jego współczynniki
void wczytajWielomian(vector<int>& a, int& stopien) {
cout << "Podaj stopien wielomianu: ";
cin >> stopien;
a.resize(stopien + 1);
for (int i = stopien; i >= 0; i--) {
cout << "a" << i << " = ";
cin >> a[i];
}
}
// Funkcja obliczająca wartość wielomianu schematem Hornera
int horner(const vector<int>& a, int stopien, int x) {
int wynik = a[stopien];
for (int i = stopien - 1; i >= 0; i--) {
wynik = wynik * x + a[i];
}
return wynik;
}
int main() {
vector<int> wspolczynniki;
int stopien;
int x = 3;
// Wczytanie danych
wczytajWielomian(wspolczynniki, stopien);
// Wyświetlanie danych (jak wcześniej)
cout << "\nStopien wielomianu: " << stopien << endl;
cout << "Wspolczynniki:" << endl;
for (int i = stopien; i >= 0; i--) {
cout << "a" << i << " = " << wspolczynniki[i] << endl;
}
cout << "x = " << x << endl << endl;
// Obliczenie wartości wielomianu
int W = horner(wspolczynniki, stopien, x);
// Wynik
cout << "W(" << x << ") = " << W << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmtjamEgd2N6eXR1asSFY2Egc3RvcGllxYQgd2llbG9taWFudSBpIGplZ28gd3Nww7PFgmN6eW5uaWtpCnZvaWQgd2N6eXRhaldpZWxvbWlhbih2ZWN0b3I8aW50PiYgYSwgaW50JiBzdG9waWVuKSB7CiAgICBjb3V0IDw8ICJQb2RhaiBzdG9waWVuIHdpZWxvbWlhbnU6ICI7CiAgICBjaW4gPj4gc3RvcGllbjsKCiAgICBhLnJlc2l6ZShzdG9waWVuICsgMSk7CgogICAgZm9yIChpbnQgaSA9IHN0b3BpZW47IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgY291dCA8PCAiYSIgPDwgaSA8PCAiID0gIjsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KfQoKLy8gRnVua2NqYSBvYmxpY3phasSFY2Egd2FydG/Fm8SHIHdpZWxvbWlhbnUgc2NoZW1hdGVtIEhvcm5lcmEKaW50IGhvcm5lcihjb25zdCB2ZWN0b3I8aW50PiYgYSwgaW50IHN0b3BpZW4sIGludCB4KSB7CiAgICBpbnQgd3luaWsgPSBhW3N0b3BpZW5dOwoKICAgIGZvciAoaW50IGkgPSBzdG9waWVuIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICB3eW5payA9IHd5bmlrICogeCArIGFbaV07CiAgICB9CgogICAgcmV0dXJuIHd5bmlrOwp9CgppbnQgbWFpbigpIHsKICAgIHZlY3RvcjxpbnQ+IHdzcG9sY3p5bm5pa2k7CiAgICBpbnQgc3RvcGllbjsKICAgIGludCB4ID0gMzsKCiAgICAvLyBXY3p5dGFuaWUgZGFueWNoCiAgICB3Y3p5dGFqV2llbG9taWFuKHdzcG9sY3p5bm5pa2ksIHN0b3BpZW4pOwoKICAgIC8vIFd5xZt3aWV0bGFuaWUgZGFueWNoIChqYWsgd2N6ZcWbbmllaikKICAgIGNvdXQgPDwgIlxuU3RvcGllbiB3aWVsb21pYW51OiAiIDw8IHN0b3BpZW4gPDwgZW5kbDsKICAgIGNvdXQgPDwgIldzcG9sY3p5bm5pa2k6IiA8PCBlbmRsOwogICAgZm9yIChpbnQgaSA9IHN0b3BpZW47IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgY291dCA8PCAiYSIgPDwgaSA8PCAiID0gIiA8PCB3c3BvbGN6eW5uaWtpW2ldIDw8IGVuZGw7CiAgICB9CiAgICBjb3V0IDw8ICJ4ID0gIiA8PCB4IDw8IGVuZGwgPDwgZW5kbDsKCiAgICAvLyBPYmxpY3plbmllIHdhcnRvxZtjaSB3aWVsb21pYW51CiAgICBpbnQgVyA9IGhvcm5lcih3c3BvbGN6eW5uaWtpLCBzdG9waWVuLCB4KTsKCiAgICAvLyBXeW5pawogICAgY291dCA8PCAiVygiIDw8IHggPDwgIikgPSAiIDw8IFcgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=