Sqrt(x)

原创 2013年12月03日 10:22:40

Implement int sqrt(int x).

Compute and return the square root of x.


//此处返回值是int,故而一些地方需要注意。下面代码使用二分查找!还有另一种方法为,牛顿迭代法!

int sqrt(int x) {

  int right,left,mid;
  if (x < 2) return x;//负数同样直接返回
  
	left = 1;
	right = x;
	while(left <= right)
	{
	mid =  (right+left)/2 ;//防止溢出
	
	  if (x/(mid +1) < (mid+1) && (x/mid)>=mid)
	  {
	  return mid;
	  }
	  
		else if (x/mid > mid)
		{
		left = mid +1;
		}
		else 
		{
		right = mid -1;
		}
		
	 }
		  
	return mid;
}

//Implement doublesqrt(double x)  //此种区别
判断是否 
1、小于0
2、大于0,小于1
3、大于等于1
最后需要一个精确度!比如0.0001
double sqrt(double x)
{
	double right,left,mid;
	if (x <0) return x;//负数同样直接返回
	left = 0;
	right = x>1?x:1;
	while(left <= right)
	{
		mid =  (right+left)/2;
		if ( fabs(x-mid*mid) <= 0.001)
		{
			return mid;
		}
		else if ( x>mid*mid )
		{
			left = mid ;
		}
		else 
		{
			right = mid ;
		}		
	}
	return mid;
	
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode - 69. Sqrt(x)

方法一:Binary Search 这道题目是一个典型的binary search问题,看似比较简单,但其实陷阱也不少。一开始直接从1到x使用binary search来寻找答案,但结果竟然TLE了...

LeetCode | Sqrt(x)

Implement int sqrt(int x). 题目解析: 求开方根,只是求解整数,比较容易,如果求解double类型...

leetCode 69.Sqrt(x) (平方根) 解题思路和方法

Implement int sqrt(int x). Compute and return the square root of x. 思路:因为本题是int类型的数据,所以可以使用二分法...

leetcode || 69、Sqrt(x)

problem: Implement int sqrt(int x). Compute and return the square root of x. Hide T...

LeetCode:69. Sqrt(x)

题目链接: 69. Sqrt(x) 题目描述: Implement int sqrt(int x) Compute and return the square root of x...
  • yums467
  • yums467
  • 2017年03月05日 22:34
  • 344

[Leetcode] 69. Sqrt(x) 解题报告

题目: Implement int sqrt(int x). Compute and return the square root of x. 思路: 这道题目挺有意思,虽然基本思...

<LeetCode OJ> 69 / 367 Sqrt(x) / Valid Perfect Square

69. Sqrt(x) My Submissions Question Total Accepted: 79525 Total Submissions: 325488 Difficulty: ...

[LeetCode] Sqrt(x)

Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 解题思路: 这道题是求x的平方根。 解法...

Sqrt(x)

mplement int sqrt(int x). Compute and return the square root of x. 非常有意思的题,使用了牛顿迭代法。 牛顿迭代法快速寻找平方根 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sqrt(x)
举报原因:
原因补充:

(最多只允许输入30个字)