長sqrt(長x)
{
長a,b;
if(x & lt;= 0)返回x & lt0;
a =(x & gt;& gt3) + 1;
for(;;)
{
b = ((a + 1)>& gt1) + ((x / a)>& gt1);
如果(a-b & lt;2)返回b-1+((x-b * b+(b & lt;& lt2)) / b >& gt2);
a = b;
}
}
2。
# include & ltstdio.h & gt
# Define EP 1e-6//定義精度。
Double sqrt(double n) //使用二分法
{
如果(n & lt0) //如果小於0,根據需要處理。
返回n;
雙ans
雙低,上;
low=0,up = n;
ans=(低+高)/2;
while(ans * ans-n & gt;EPS | | ans * ans-n & lt;-eps)
{
if(ans * ans & gt;n)
up = ans
其他
低= ans
ans=(上+下)/2;
}
返回ans
}
void main()
{
for(int I = 0;我& lt10;i++)
printf("%lf\n ",sqrt(I));
}
請接受感謝。