LeetCode69-x 的平方根

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:

输入: 4
输出: 2

示例 2:

输入: 8
输出: 2
说明: 8 的平方根是 2.82842..., 
     由于返回类型是整数,小数部分将被舍去。

一、思路

想法是不断去逼近这个整数n,至于如何逼近,先用乘法再用减法

C++代码:

class Solution {
public:
	int mySqrt(int x) {
		if (x == 1 || x == 0)
			return x;
		int n = 2;
		long long sqrt_x = x / n;
		while (sqrt_x*sqrt_x > x) {
			n++;
			sqrt_x = x / n;
		}
		sqrt_x = x / (n - 1);
		while (sqrt_x*sqrt_x > x)
			sqrt_x--;
		return sqrt_x;
	}
};

执行效率:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lyd1995/article/details/89086844