- 之前面试的时候,面试有一道题,要记算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