fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. int main() {
  5. // Dane wejściowe
  6. double c = 15.0; // liczba, z której liczymy pierwiastek
  7. double eps = 0.001; // żądana dokładność
  8.  
  9. // Inicjalizacja przybliżenia (może być c/2 lub 1.0)
  10. double x = c / 2.0;
  11. double pkw; // wynik: pierwiastek kwadratowy
  12.  
  13. // Metoda Newtona-Raphsona: iterujemy, aż różnica będzie < eps
  14. while (true) {
  15. double next_x = 0.5 * (x + c / x); // wzór Newtona-Raphsona dla sqrt(c)
  16. if (std::fabs(next_x - x) < eps) {
  17. pkw = next_x;
  18. break;
  19. }
  20. x = next_x;
  21. }
  22.  
  23. // Wyświetlenie wyniku
  24. std::cout << "Przybliżony pierwiastek kwadratowy z " << c << " = " << pkw << std::endl;
  25.  
  26. return 0;
  27. }
  28.  
Success #stdin #stdout 0.01s 5328KB
stdin
Podaj liczbe c (>1): 9
Podaj dokladnosc eps: 0.00001
stdout
Przybliżony pierwiastek kwadratowy z 15 = 3.87298