fork(1) download
  1. #include <iostream>
  2. #include <cmath> // dla std::abs
  3.  
  4. int main() {
  5. double a; // liczba, której pierwiastek chcemy policzyć
  6. double tol = 1e-6; // tolerancja błędu
  7. std::cout << "Podaj liczbe: ";
  8. std::cin >> a;
  9.  
  10. if (a < 0) {
  11. std::cout << "Pierwiastek z liczby ujemnej nie istnieje w zbiorze liczb rzeczywistych.\n";
  12. return 1;
  13. }
  14.  
  15. double x = a / 2.0; // początkowe przybliżenie
  16. double x_next;
  17.  
  18. do {
  19. x_next = 0.5 * (x + a / x); // wzór Newtona-Raphsona
  20. if (std::abs(x_next - x) < tol) break; // warunek zakończenia
  21. x = x_next;
  22. } while (true);
  23.  
  24. std::cout << "Przyblizony pierwiastek kwadratowy z " << a << " wynosi: " << x_next << "\n";
  25.  
  26. return 0;
  27. }
  28.  
Success #stdin #stdout 0.01s 5308KB
stdin
10
stdout
Podaj liczbe: Przyblizony pierwiastek kwadratowy z 10 wynosi: 3.16228