69.x的平方根(C++)

69.x的平方根

  • 问题描述
  • 算法思想
  • 代码

问题描述

实现 int sqrt(int x) 函数。

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

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

示例 1:

输入: 4
输出: 2
示例 2:

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

算法思想

简单的sqrt函数应用,但是在leetcode的评论区我看到了牛顿迭代法求平方根,我觉得不错,拿来借鉴一下。
具体参考链接牛顿迭代法

代码

sqrt函数应用

class Solution {
public:
    int mySqrt(int x) {
        return (int)sqrt(x);
    }
};

牛顿迭代法求平方根

class Solution {
public:
    int mySqrt(int x) {
        if (x == 0) return 0;
        double last = 0;
        double res = 1;
        while (res != last)
        {
            last = res;
            res = (res + x / res) / 2;
        }
        return int(res);
    }
};

你可能感兴趣的:(leetcode)