正确求平方根的整数部分方法

k=sqrt(n),由于其原型是double sqrt(double),他的返回值和参数都是double型,浮点数据只是对一定范围内的实数的一种近似表示,并不精确。

与我们要求得似是而非,存在错误。

通过数学方法,可以正确求出平方根或者其整数部分。

1=1*1;

1+3=2*2;

1+3+5=3*3;

~~~

1+3+5+~+(2k-1)=k*k;

odd=1,k=1;
while(n>=odd)
{
    n-=odd;
    odd+=2;
    k++;
 } 
 // k即为所求 

 

posted @ 2017-04-20 20:47  T.X  阅读(1231)  评论(0编辑  收藏  举报