69.x的平方根

题目
实现 int sqrt(int x) 函数。

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

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

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

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

思路
1.最笨的方法是,设置一个变量,让这个变量从0开始,逐步增加,然后用它的平方和x去比较

class Solution {
public:
    int mySqrt(int x) {
        double y;
        while (y * y < x)
        {
            y = y + 1.0;
        }
        if (y * y == x) return  y;
        else {
            return y - 1;
        }
    }
};

2.re = (re + x / re) / 2 转换为 re ^ 2 = x,最多通过两次赋值即可达到目的

    int mySqrt1(int x)
    {
        double re = 2.0;
        if (x == 1 || x == 2 || x == 3) return 1;
        while (fabs(re * re - x) > 0.5)
        {
            re = (re + x / re) / 2;
        }
        //re = (x == 1 || x == 2 || x == 3) ? 1 : (re + x / re) / 2;
        return  int(re);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 内容 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型...
    吃饭用盘装阅读 1,373评论 0 0
  • 实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结...
    vbuer阅读 4,012评论 0 0
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,754评论 0 38
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,720评论 0 13
  • 郭相麟 明天的你 就要步入婚姻的殿堂 面对前来祝贺的亲朋好友 看到了父母脸上绽放的笑容 那一刻起 你将明白告别单身...
    郭相麟阅读 1,612评论 0 0

友情链接更多精彩内容