Wielomian stopnia trzeciego W(x)=3x^3-5x^2+7x+9możemy zapisać w postaci Hornera następująco
Aby obliczyć jego wartość w punkcie x wystarczy do współczynnika ostatniego a_0=9 dodać pomnożoną liczbę x przez wartość w nawiasie, czyli wartość wielomianu o współczynnikach a_3=3, a_2=-5 a_1=7 - liczbę tę możemy oznaczyć przez W(x,1):
Jak widać obliczenie W(x,1) polega dokładnie na tym samym.
Wzór rekurencyjny pozwalający obliczyć wartość wielomianu stopnia n możemy zapisać następująco
a wartość wielomianu w punkcie x oblicza wywołanie W(x,0).
Napisz program obliczający wartość wielomianu rekurencyjną wersją schematu Hornera.
Pierwszy wiersz wejścia zawiera liczbę całkowitą k z zakresu
W każdym z kolejnych k wierszy zapisano liczbę całkowitą n
z zakresu 0..10 będącą stopniem wielomianu, n+1 współczynników
wielomianu z zakresu -1..1 oraz liczbę rzeczywistą x z zakresu
-1..1. Współczynniki wielomianu zapisane są w kolejności od
a0 do an.
W pierwszym wierszu wyjścia należy zapisać sumę wszystkich obliczonych
wartości wielomianu z dokładnością do liczby całkowitej.
W wierszu drugim liczbę równą ilości takich wywołań funkcji rekurencyjnej,
w których obliczony iloczyn x*W(x, i) był liczbą dodatnią.
Dla danych podanych na wejściu:
2 2 1 1 -1 1.47 2 -1 1 -1 1.06
Poprawną odpowiedzią jest wyjście:
-1 0
Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5
Opcje zadania:
Biblioteki : iostream iomanip cmath Limit czasu : 0.25 s Limit pamięci : 32 MB Słowa niedozwolone :