69. Sqrt(x)

Problem

Implement int sqrt(int x).

Compute and return the square root of x, where x is guaranteed to be a non-negative integer.

Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

Example

Input: 4
Output: 2
Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since 
             the decimal part is truncated, 2 is returned.

Code

static int var = [](){
    std::ios::sync_with_stdio(false);
    cin.tie(NULL);
    return 0;
}();
class Solution {
public:
    int mySqrt(int x) {
        float f_x = (float)x;
        float xhalf = 0.5 * f_x;
        int i = *(int*)&f_x;
        i = 0x5f375a86- (i>>1);
        f_x = *(float*)&i;
        f_x = f_x*(1.5-xhalf*f_x*f_x);
        f_x = f_x*(1.5-xhalf*f_x*f_x);
        f_x = f_x*(1.5-xhalf*f_x*f_x);
        int ret = (int)(1/f_x);
        if(ret * ret > x)
            return ret - 1;
        return ret;
    }
};

Result

69. Sqrt(x).png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,199评论 0 10
  • 秋来又是萧瑟意,坠叶矣,黄花闭。 倾杯闲锁寂幽思,衣上粘痕垂泪。 凭栏骋目、一阶愁语,言与谁同说? 疏阳黯起凉天气...
    木薯羹阅读 1,445评论 1 0
  • 记得一同学曾有开玩笑地跟我讲,说她老公在钓鱼上花的钱比在她身上花的钱还要多。在我看来,这一点儿也不奇怪,因为钓鱼是...
    吴益军子阅读 4,994评论 8 8
  • 我在广州的这段日子写了十多篇文章,闲来无事写写练练笔锋,也是打发时间的最好方式,今天来说说教师的那些事。 人们总是...
    素美贝儿阅读 3,808评论 0 0

友情链接更多精彩内容