给定一个数,求平方根
一般在正常的学习过程中,4的平方根是2,9的平方根是3。。。。,但是机器是不懂这种思维方式的,需要有一定的逻辑实现。
这里采用两种简便算法求其结果
1、二分查找法
1、先从0-n之间的中间数mid开始查找,如果这个mid*mid中间数相乘大于n,就说明平方根在0-mid之间,以此类推
2、如果如果这个mid*mid中间数相乘小于n,说明平方根在mid-n之间,以此类推
3、代码实现如下
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
}
网友评论