#include <iostream>
#include <vector>
using namespace std;
// Funkcja ustawiająca stopień wielomianu i jego współczynniki
void ustawWielomian(int &n, vector<int> &a)
{
n = 3; // stopień wielomianu
a.resize(n + 1);
a[3] = 1; // a3 = 1
a[2] = 2; // a2 = 2
a[1] = 3; // a1 = 3
a[0] = 4; // a0 = 4
}
// Funkcja obliczająca wartość wielomianu algorytmem naiwnym
int obliczWielomian(int n, const vector<int> &a, int x)
{
int wynik = 0;
for (int i = 0; i <= n; i++)
{
int potega = 1;
for (int j = 0; j < i; j++)
{
potega *= x;
}
wynik += a[i] * potega;
}
return wynik;
}
int main()
{
int n;
vector<int> a;
int x = 2; // wartość x
ustawWielomian(n, a);
int wynik = obliczWielomian(n, a, x);
cout << "Stopien wielomianu = " << n << endl;
cout << "x = " << x << endl;
cout << "W(" << x << ") = " << wynik << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRnVua2NqYSB1c3Rhd2lhasSFY2Egc3RvcGllxYQgd2llbG9taWFudSBpIGplZ28gd3Nww7PFgmN6eW5uaWtpCnZvaWQgdXN0YXdXaWVsb21pYW4oaW50ICZuLCB2ZWN0b3I8aW50PiAmYSkKewogICAgbiA9IDM7ICAgICAgICAgICAgICAgICAvLyBzdG9waWXFhCB3aWVsb21pYW51CiAgICBhLnJlc2l6ZShuICsgMSk7CgogICAgYVszXSA9IDE7ICAgICAgICAgICAgICAvLyBhMyA9IDEKICAgIGFbMl0gPSAyOyAgICAgICAgICAgICAgLy8gYTIgPSAyCiAgICBhWzFdID0gMzsgICAgICAgICAgICAgIC8vIGExID0gMwogICAgYVswXSA9IDQ7ICAgICAgICAgICAgICAvLyBhMCA9IDQKfQoKLy8gRnVua2NqYSBvYmxpY3phasSFY2Egd2FydG/Fm8SHIHdpZWxvbWlhbnUgYWxnb3J5dG1lbSBuYWl3bnltCmludCBvYmxpY3pXaWVsb21pYW4oaW50IG4sIGNvbnN0IHZlY3RvcjxpbnQ+ICZhLCBpbnQgeCkKewogICAgaW50IHd5bmlrID0gMDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgaW50IHBvdGVnYSA9IDE7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBwb3RlZ2EgKj0geDsKICAgICAgICB9CiAgICAgICAgd3luaWsgKz0gYVtpXSAqIHBvdGVnYTsKICAgIH0KCiAgICByZXR1cm4gd3luaWs7Cn0KCmludCBtYWluKCkKewogICAgaW50IG47CiAgICB2ZWN0b3I8aW50PiBhOwogICAgaW50IHggPSAyOyAgIC8vIHdhcnRvxZvEhyB4CgogICAgdXN0YXdXaWVsb21pYW4obiwgYSk7CgogICAgaW50IHd5bmlrID0gb2JsaWN6V2llbG9taWFuKG4sIGEsIHgpOwoKICAgIGNvdXQgPDwgIlN0b3BpZW4gd2llbG9taWFudSA9ICIgPDwgbiA8PCBlbmRsOwogICAgY291dCA8PCAieCA9ICIgPDwgeCA8PCBlbmRsOwogICAgY291dCA8PCAiVygiIDw8IHggPDwgIikgPSAiIDw8IHd5bmlrIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K