js实现Math.sqrt()方法

  • 之前面试的时候,面试有一道题,要记算10的平方根,并且精确到0.01,我也是想了一会才想到了一种简单粗暴的方法,也算是完成了;
  squareRoot=(num)=>{
     let s=1,d=0.1,x=0.01;
      while(s*s<num){
       s++;
     }
       let sd=s-1+d;
       while(sd*sd<num){
           sd+=0.1
        }
       let sdx=sd-0.1+x;
       while(sdx*sdx<num){
           sdx=(sdx*100+0.01*100)/100
       } 
            return (sdx*100-0.01*100)/100
    }
    console.log(squareRoot(num));

虽然简单粗暴,但是有用,但对于加载速度问题可能无法适用,因此,本着勤奋好学的原则,我打开了baidu.com。
下面我就将我从上面学到的两种方法push给你们看:

// 二分法:
mySqrt=(n)=> {
    if (isNaN(n)) return NaN;
    if (n === 0 || n === 1) return n;
    var low = 0,
        high = n,
        pivot = (low + high) / 2,
        lastPivot = pivot;
    
    do {
        console.lo
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值