首页 > 其他分享 >的平方根

的平方根

时间:2024-01-31 23:11:06浏览次数:18  
标签:int mid 整数 sqrt 平方根 小数

69. x 的平方根(Easy)

问题描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
//思路:典型的利用二分查找
//[l,r]中查找值为 sqrt 的元素。
//同时 sqrt 的值和l、r 有关,而l,r 是不断变化的
class Solution {
    public int mySqrt(int x) {
        if(x<=1){
            return x;
        }
        int l = 0;
        int r = x;
        while(l<=r){
            int mid = (r-l)/2 + l;
            int sqrt = x/mid;
            if(sqrt == mid){
                return mid;
            }else if(sqrt > mid){
                l = mid + 1;
            }else{
                assert sqrt < mid;
                r = mid - 1;
            }
        }
        //循环结束时 l > r,这里忽略小数部分。
        return r;
    }
}

参考:

标签:int,mid,整数,sqrt,平方根,小数
From: https://www.cnblogs.com/i9code/p/18000333

相关文章

  • 计算一个数的算术平方根
    从键盘输入一个小于1000的数,输出它的算术平方根,若算数平方根不为整数,则向下取整。#include<stdio.h>#include<math.h>intmain(){ inta=0; intb=0; while(scanf("%d",&a)) { if(a>0&&a<1000) { break; } else { printf(&qu......
  • leedcode x的平方根
    暴力搜索classSolution:defmySqrt(self,x:int)->int:ifx>=100andx<10000:i=10elifx>=10000andx<1000000:i=100elifx>=1000000:i=1000else:i=0......
  • 计算机编程中的黑魔法编程是什么?如何求解一个浮点数的平方根倒数?计算机中的浮点数是如
    原视频:没有显卡的年代,这群程序员用4行代码优化游戏最原始的求解目标:(求一个浮点数的开方的导数)浮点数在计算机中的表示形式:对数的运算法则:A为a在计算机中的表示形式(二进制表示形式):求浮点数的平方根倒数的应用场景:这个情况,直白的说就......
  • 牛顿迭代法求平方根
      publicclassCalcUtils{publicstaticvoidmain(String[]args){System.out.println(sqrt(8));}publicstaticdoublesqrt(doublec){if(c<0)returnDouble.NaN;doubleerr=1e-15;doublet=c;......
  • 69. x 的平方根
    69.x的平方根给你一个非负整数x,计算并返回x的算术平方根。由于返回类型是整数,结果只保留整数部分,小数部分将被舍去。注意:不允许使用任何内置指数函数和算符,例如pow(x,0.5)或者x**0.5。二分思路数据挺大,用longlong。classSolution{public:intmyS......
  • 平方根倒数快速算法
    平方根是什么?给定一个x,我想算x^(1/2),就是在算平方根在计算机里最常见的算法是牛顿迭代法牛顿迭代法平方根倒数是什么?给定一个x,我想算x^-(1/2),就是在算平方根的倒数平时我们是如何计算的?如果在纸上写,就是一步一步的算,先算平方根(一般就是查表法),再求倒数;但是大部分的数是无......
  • 计算一个数的平方根
    #include<stdio.h>#include<math.h> intmain(){   doublenum=25.0;   doublesquareRoot=sqrt(num);      printf("Thesquarerootof%fis%f\n",num,squareRoot);   return0;}......
  • L4: 69.x的平方根
    给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x,0.5) 或者 x**0.5 。 示例1:输入:x=4输出:2示例2:输入:x=8输出:2解释:8的算术平方根......
  • 计算x的平方根
    publicclassSolution{publicintmySqrt(inta){if(a<2)returna;intstart=2;intend=a/2;intmid=0;while(start<=end){mid=start+(end-start)/2;longnum=(lo......
  • 平方根倒数快速算法
    平方根倒数快速算法平方根常出现在游戏的图形计算中,尤其是求一个向量的基向量时约翰卡马克的代码floatQ_rsqrt(floatnumber){ longi; floatx2,y; constfloatthreehalfs=1.5F; x2=number*0.5F; y=number; i=*(long*)&y;......