运用了数学知识的导数,极限的思维,牛顿的迭代法求平方根
function Squareroot(num){
let temp = 0
let k = num
const SquarerootStart = (num)=>{
let temp2 = ((2*num* num) - (num*num-k))/(2*num)
//取小数后15位精度
if(temp.toString().split('.')[1]){
if(temp.toString().split('.')[1].substring(0,15)==temp2.toString().split('.')[1].substring(0,15)){
return temp2
}
}else{
if(temp==temp2){
return temp2
}
}
temp = temp2
return SquarerootStart(temp)
}
return SquarerootStart(num)
}
console.log( Squareroot(6))
console.log(Math.sqrt(6))
运行结果 2.4494897427831783
2.449489742783178
基本精度一致