Zadanie : mat09-b
Zadanie

Funkcje wielomianowe są funkcjami ciągłymi - wykres funkcji ciągłej jest linią ciągłą. Jeśli funkcja ciągła określona w przedziale [a,b] spełnia warunek f(a)*f(b)<=0, to istnieje w tym przedziale co najmniej jedno miejsce zerowe tej funkcji.

Miejsce zerowe funkcji ciąłej w przedziale [a,b] wyznacza algorytm bisekcji:


SZUKAJ(a, b, e) - znajdź miejsce zerowe funkcji f w przedziale [a,b]
                  e - stała służąca do zakończenia procesu połowienia
1. dokóki b-a>e:
   a.) oblicz środek przedziału s=(a+b)/2
   b.) jeżeli f(a)*f(s)<=0, to odrzuć część prawą: b:=s
   c.) w przeciwnym przypadku odrzuć część lewą:  a:=s
2. Zwróć środek przedziału: (a+b)/2

Napisz program, który wyznaczy wszystkie trzy miejsca zerowe funkcji wielomianowej stopnia trzeciego W(x)=a3x3+a2x2+a1x+a0.

Wejście

Pierwszy wiersz wejścia zawiera rzeczywiste współczynniki wielomianu a3, a2, a1 i a0.

Możesz założyć, że funkcja wielomianowa W ma w przedziale [-25, 25] trzy różne miejsca zerowe.

Wyjście

Wyznaczone miejsce zerowe z dokładnością do pięciu miejsc po przecinku.

Przykład

Dla danych podanych na wejściu:

1.00000 -9.51667 -63.42500 613.66667

Poprawną odpowiedzią jest wyjście:

3
-8.00000 8.74914 8.76753

Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5

Opcje zadania:

Biblioteki         : iostream iomanip cmath 
Limit czasu        : 0.1 s
Limit pamięci      : 32 MB
Słowa niedozwolone :