2002. 求斜边

Fifnmar

来了解一下伟大的牛顿迭代开方法吧!

尝试了一下固定次数逼近行不行,结果听取WA声一片,还是得用误差范围逼。

有四行I/O优化和格式化的代码。C++的格式化和C还是不太一样的。

#include <iostream>
using namespace std;

double sqrt(double i) {
    double const ERR = 0.001;
    double ans = i / 2;
    while (ERR < abs(ans * ans - i))
        ans = (ans * ans + i) / 2 / ans;
    return ans;
}

int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    cout << fixed;
    cout.precision(3);
    double a, b;
    while (cin >> a >> b)
        cout << sqrt(a * a + b * b) << '\n';
}
你当前正在回复 博客/题目
存在问题!