牛顿迭代法, 开根号

牛顿迭代法, 开根号

由于我们是想求得 x * x = y
sqrt(y) = x

所以一句话说的好, 将 长方形变得更像正方形

code

#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 将 长方形变得更像正方形!
    int n = 4;
    double t1 = 5;
    const double eps = 1e-4;
    while(true) {
        double tmp = 0.5*(t1 + n/t1);
        if(fabs(tmp*tmp-(double)n) < eps) {
            cout << tmp << endl;
            break;
        }
        t1 = tmp;
    }
    return 0;
}
posted @ 2019-10-06 14:59 Draymonder 阅读(...) 评论(...) 编辑 收藏