fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. // Funkcja wczytuje stopień wielomianu i współczynniki
  7. vector<int> wczytajWielomian(int &stopien) {
  8. cin >> stopien;
  9.  
  10. vector<int> wspolczynniki(stopien + 1); // od a0 do aN
  11.  
  12. for (int i = stopien; i >= 0; i--) {
  13. cin >> wspolczynniki[i];
  14. }
  15.  
  16. return wspolczynniki;
  17. }
  18.  
  19. // Funkcja oblicza wartość wielomianu metodą Hornera
  20. int obliczWartoscHornera(const vector<int> &wspolczynniki, int stopien, int x) {
  21. int wynik = wspolczynniki[stopien]; // zaczynamy od najwyższego współczynnika
  22.  
  23. for (int i = stopien - 1; i >= 0; i--) {
  24. wynik = wynik * x + wspolczynniki[i];
  25. }
  26.  
  27. return wynik;
  28. }
  29.  
  30. int main() {
  31. int stopien;
  32. vector<int> wspolczynniki = wczytajWielomian(stopien);
  33.  
  34. int x;
  35. cin >> x;
  36.  
  37. int wartosc = obliczWartoscHornera(wspolczynniki, stopien, x);
  38.  
  39. // Wyświetlenie wyniku w podanym formacie
  40. cout << "stopien wielomianu : " << stopien << " | ";
  41. for (int i = stopien; i >= 0; i--) {
  42. cout << "a" << i << "=" << wspolczynniki[i] << " | ";
  43. }
  44. cout << "x=" << x << " | W(" << x << ")=" << wartosc << endl;
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0.01s 5220KB
stdin
3 1 2 3 4 2
stdout
stopien wielomianu : 3 | a3=1 | a2=2 | a1=3 | a0=4 | x=2 | W(2)=26