fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. double a; // liczba, z której liczymy pierwiastek
  9. double left = 1.0; // lewy kraniec przedziału
  10. double right;
  11. double mid;
  12. double eps = 1e-6;
  13.  
  14. cout << "Podaj liczbe rzeczywista > 1: ";
  15. cin >> a;
  16.  
  17. if (a <= 1)
  18. {
  19. cout << "Liczba musi byc > 1!" << endl;
  20. return 1;
  21. }
  22.  
  23. right = a;
  24.  
  25. // Metoda bisekcji
  26. while ((right - left) > eps)
  27. {
  28. mid = (left + right) / 2.0;
  29.  
  30. if (mid * mid > a)
  31. right = mid;
  32. else
  33. left = mid;
  34. }
  35.  
  36. mid = (left + right) / 2.0;
  37.  
  38. cout << "Przyblizona wartosc sqrt(" << a << ") = " << mid << endl;
  39.  
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0.01s 5288KB
stdin
3
stdout
Podaj liczbe rzeczywista > 1: Przyblizona wartosc sqrt(3) = 1.73205