Men的博客

欢迎光临!

0%

开根号

static double newSqrt(double n) {
double low, high, mid, tmp;
double ACCURACY = 0.001;
// 获取上下界
if (n > 1) {
low = 1;
high = n;
} else {
low = n;
high = 1;
}

// 二分法求开方
while (low <= high) {
    mid = (low + high) / 2.000;

    tmp = mid * mid;

    if (tmp - n <= ACCURACY && tmp - n >= ACCURACY * -1) {
        return mid;
    } else if (tmp > n) {
        high = mid;
    } else {
        low = mid;
    }
}
return -1.000;

}