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即为所求
本文介绍了一种使用数学方法求解平方根或其整数部分的算法,避免了浮点数运算带来的误差。通过累加奇数的方式,逐步逼近目标数值,实现精准计算。
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即为所求
转载于:https://www.cnblogs.com/TX980502/p/6740728.html

被折叠的 条评论
为什么被折叠?