求平方根
程序员文章站
2024-03-17 16:43:22
...
求平方根
1.题目描述
求一个数的平方根,精度要求 e < 10^-6;
2.思路(二分法)
定义一个最小值left和最大值right,把一个数取一个中间值mid = left+(right-left)/2,然后平方,如果平方mid*mid大于该数值,就把中间值赋给最大值,否者就把中间值赋给最小值,一直循环,直到取到想要的精度为止
3.代码
//二分法
double sqrt1(double x){
double EPSINON = 0.00001;
double left= 0.0;
double right = x;
double mid = left + (right - left) / 2;
while (fabs(mid*mid - x) > EPSINON){
if (mid*mid > x){
right= mid;
}
else{
left= mid;
}
mid = left + (right - left) / 2;
}
return mid;
}