#include <iostream>
#include <vector>
using namespace std;
// Funkcja 1: zwraca i wypisuje współczynniki wielomianu
// W(x) = a3*x^3 + a2*x^2 + a1*x + a0
vector<double> wspolczynnikiWielomianu() {
vector<double> a;
a.push_back(4); // a0
a.push_back(0); // a1
a.push_back(0); // a2
a.push_back(1); // a3
cout << "Wspolczynniki wielomianu:" << endl;
for (int i = 0; i < a.size(); i++) {
cout << "a" << i << " = " << a[i] << endl;
}
return a;
}
// Funkcja 2: algorytm naiwny – obliczanie wartości wielomianu
double obliczWielomian(const vector<double>& a, double x) {
double wynik = 0;
for (int i = 0; i < a.size(); i++) {
double potega = 1;
for (int j = 0; j < i; j++) {
potega *= x;
}
wynik += a[i] * potega;
}
return wynik;
}
int main() {
vector<double> a = wspolczynnikiWielomianu();
double x;
cout << "Podaj argument x: ";
cin >> x;
double wynik = obliczWielomian(a, x);
cout << "Wartosc wielomianu W(x) = " << wynik << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmtjamEgMTogendyYWNhIGkgd3lwaXN1amUgd3Nww7PFgmN6eW5uaWtpIHdpZWxvbWlhbnUKLy8gVyh4KSA9IGEzKnheMyArIGEyKnheMiArIGExKnggKyBhMAp2ZWN0b3I8ZG91YmxlPiB3c3BvbGN6eW5uaWtpV2llbG9taWFudSgpIHsKICAgIHZlY3Rvcjxkb3VibGU+IGE7CiAgICBhLnB1c2hfYmFjayg0KTsgLy8gYTAKICAgIGEucHVzaF9iYWNrKDApOyAvLyBhMQogICAgYS5wdXNoX2JhY2soMCk7IC8vIGEyCiAgICBhLnB1c2hfYmFjaygxKTsgLy8gYTMKCiAgICBjb3V0IDw8ICJXc3BvbGN6eW5uaWtpIHdpZWxvbWlhbnU6IiA8PCBlbmRsOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLnNpemUoKTsgaSsrKSB7CiAgICAgICAgY291dCA8PCAiYSIgPDwgaSA8PCAiID0gIiA8PCBhW2ldIDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIGE7Cn0KCi8vIEZ1bmtjamEgMjogYWxnb3J5dG0gbmFpd255IOKAkyBvYmxpY3phbmllIHdhcnRvxZtjaSB3aWVsb21pYW51CmRvdWJsZSBvYmxpY3pXaWVsb21pYW4oY29uc3QgdmVjdG9yPGRvdWJsZT4mIGEsIGRvdWJsZSB4KSB7CiAgICBkb3VibGUgd3luaWsgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5zaXplKCk7IGkrKykgewogICAgICAgIGRvdWJsZSBwb3RlZ2EgPSAxOwogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgaisrKSB7CiAgICAgICAgICAgIHBvdGVnYSAqPSB4OwogICAgICAgIH0KICAgICAgICB3eW5payArPSBhW2ldICogcG90ZWdhOwogICAgfQoKICAgIHJldHVybiB3eW5pazsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8ZG91YmxlPiBhID0gd3Nwb2xjenlubmlraVdpZWxvbWlhbnUoKTsKCiAgICBkb3VibGUgeDsKICAgIGNvdXQgPDwgIlBvZGFqIGFyZ3VtZW50IHg6ICI7CiAgICBjaW4gPj4geDsKCiAgICBkb3VibGUgd3luaWsgPSBvYmxpY3pXaWVsb21pYW4oYSwgeCk7CgogICAgY291dCA8PCAiV2FydG9zYyB3aWVsb21pYW51IFcoeCkgPSAiIDw8IHd5bmlrIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K