Files
exercises/_others/others_test_cpp.cpp
T
2026-10-09 10:21:51 +08:00

30 lines
740 B
C++

#include <bits/stdc++.h>
using namespace std;
constexpr float ALLOWED_DIFF = 1e-6;
std::tuple<int, double> sqrt_custom(double x) {
double est_prev = -1, est_curr = x;
int rounds = 0;
while (abs(est_curr - est_prev) > ALLOWED_DIFF) {
est_prev = est_curr;
// est_curr = 0.5 * (est_prev + x / est_prev);
est_curr = x / (2 * est_curr) + 0.5 * est_curr;
rounds++;
}
return std::make_tuple(rounds, est_curr);
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int x;
while (std::cin >> x) {
auto [rounds, ans] = sqrt_custom(x);
std::cout << rounds << " " << std::fixed << std::setprecision(2) << ans << std::endl;
}
return 0;
}