fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. int main() {
  5. double c = 15.0; // liczba, której pierwiastek szukamy
  6. double eps = 0.001; // dokładność
  7. double a = 0.0; // początek przedziału
  8. double b = (c > 1) ? c : 1; // koniec przedziału (minimum 1 dla c < 1)
  9. double x; // przybliżenie pierwiastka
  10. int iterations = 0; // liczba iteracji
  11.  
  12. // Metoda bisekcji
  13. while ((b - a) > eps) {
  14. x = (a + b) / 2.0; // środek przedziału
  15. if (x * x > c) {
  16. b = x; // pierwiastek jest mniejszy
  17. } else {
  18. a = x; // pierwiastek jest większy
  19. }
  20. iterations++;
  21. }
  22.  
  23. x = (a + b) / 2.0; // ostateczne przybliżenie
  24.  
  25. std::cout << "Przybliżony pierwiastek kwadratowy z " << c << " = " << x << std::endl;
  26. std::cout << "Liczba iteracji: " << iterations << std::endl;
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
Przybliżony pierwiastek kwadratowy z 15 = 3.87314
Liczba iteracji: 14