給定一個數(shù)齿拂,求平方根
一般在正常的學習過程中,4的平方根是2肴敛,9的平方根是3署海。。医男。砸狞。,但是機器是不懂這種思維方式的,需要有一定的邏輯實現(xiàn)镀梭。
這里采用兩種簡便算法求其結(jié)果
1刀森、二分查找法
1、先從0-n之間的中間數(shù)mid開始查找报账,如果這個mid*mid中間數(shù)相乘大于n,就說明平方根在0-mid之間研底,以此類推
2、如果如果這個mid*mid中間數(shù)相乘小于n,說明平方根在mid-n之間透罢,以此類推
3榜晦、代碼實現(xiàn)如下
func kaiPingFang(num: CGFloat) -> CGFloat {
var low: CGFloat = 0
var high = num
let FixedNum:CGFloat = 0.0001
var mid = (low + high) / 2 //中間值
while (high - low) > FixedNum {
if mid * mid > num {
//如果大于num,說明平方根在low--mid之間 把mid賦值給high
high = mid
}else{
//如果小于num羽圃,說明平方根在mid--high之間 把midz賦值給low
low = mid
}
mid = (low + high) / 2
}
return mid
}