算法 求平方根[循环]

给你一个正整数,求出其正平方根的值,如果其正平方根的值不为整数则取其整数部分.不允许使用库函数.

示例 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;  
  }  
posted @ 2020-10-24 17:07  simonlma  阅读(41)  评论(0)    收藏  举报