fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int get_guess(int num) {
  5. int a = 1;
  6. while (a * a <= num) {
  7. a++;
  8. }
  9. a--;
  10. return a;
  11. }
  12.  
  13. int main(void) {
  14. char buffer[1025];
  15. while (fgets(buffer, 2015, stdin) != NULL) {
  16. int prec;
  17. long double num;
  18. if (sscanf(buffer, "%d %Lf", &prec, &num) != 2) {
  19. fprintf(stderr, "you didn't input 2 numbers!\n");
  20. continue;
  21. }
  22. long double target_sqr = (long double) num;
  23. long double guess = (long double) get_guess(num);
  24. int loops = 10;
  25. while (loops > 0) {
  26. guess = 0.5 * (guess + (num / guess));
  27. loops--;
  28. }
  29. printf("%.*Lf\n", prec, guess);
  30. }
  31. return EXIT_SUCCESS;
  32. }
Success #stdin #stdout 0s 9432KB
stdin
0 7720.17
1 7720.17
2 7720.17
0 12345
8 123456
20 123456789
stdout
88
87.9
87.86
111
351.36306010
11111.11106055555544003255