fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. double c;
  9. double a, b, m;
  10. double eps = 1e-6;
  11. int iter = 0;
  12. int maxIter = 1000;
  13.  
  14. cout << "Podaj liczbe c > 1: ";
  15. cin >> c;
  16.  
  17. if (c <= 1)
  18. {
  19. cout << "Blad: c musi byc > 1" << endl;
  20. return 1;
  21. }
  22.  
  23. // Przedzial poczatkowy
  24. a = 1.0;
  25. b = c;
  26.  
  27. // Metoda bisekcji
  28. do
  29. {
  30. m = (a + b) / 2.0;
  31.  
  32. if (m * m > c)
  33. b = m;
  34. else
  35. a = m;
  36.  
  37. iter++;
  38.  
  39. } while (fabs(m * m - c) > eps && iter < maxIter);
  40.  
  41. cout << "Przyblizona wartosc sqrt(" << c << ") = " << m << endl;
  42. cout << "Liczba iteracji: " << iter << endl;
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 5292KB
stdin
4
stdout
Podaj liczbe c > 1: Przyblizona wartosc sqrt(4) = 2
Liczba iteracji: 22