√x,开根号
那么确认整数部分会吧
拿2为例
1^2=1 2^2=4
整数部分为1了。
设整数部分为y。
确认小数部分时先用第一步
1.基于泰勒级数展开,(x-y^2)/(2y)
小数部分为1/2,就是0.5了
设z为步骤1的结果。
可是√2≈1.41啊
这就是步骤1的缺点了,虽然快但是不够精准。
2.基于牛顿迭代法(微积分),反复进行操作。
1/2(z+2/z)
进行一次后就≈1.41,反复进行可以进一步提高精度。
最后怎么用编程来开根号呢?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<sqrt(n);
return 0;
}