算法 求平方根[循环]
给你一个正整数,求出其正平方根的值,如果其正平方根的值不为整数则取其整数部分.不允许使用库函数.
示例 1:
输入:9
输出:3
示例 2:
输入:10
输出:3
算法1:二分法求平方根,类似于折半查找思想,不断缩小查找区间,i^2 >n &&(i-1)^2<n时,算术平方根为i-1;
double sqrt1(double x) {
double EPS = 0.00000001;
double low = 0.0;
double high = x;
double mid = (low + high) / 2;
while ((high - low) > EPS) {
if (mid * mid > x) {
high = mid;
}
else {
low = mid;
}
mid = (high + low) / 2;
}
return mid;
}
算法二:利用循环依次遍历
int MySqrt(int n)
{
int i;
for(i=0;i*i<=n;i++) ;
return i-1;
}

浙公网安备 33010602011771号