牛顿迭代法, 开根号
由于我们是想求得 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;
}