使用代码实现求最小运算次数:
1、输入一个数字X经过n次运算后得到Y值;
2、每次只能进行乘2或者减1运算;
例1:X=2 Y=3
//过程:2 - 4 -3 结果为2次运算
例2:X=5 Y=14
//过程:5 - 4 -8-7-14 结果为4次运算
例3:X=19 Y=16
//过程:19 - 18 -17 - 16结果为3次运算
分析:(X -> Y)
1、当X>Y时只能做减法运算。
2、当X<Y时,最快是做乘法运算,但Y值是奇数时X再怎么乘2都没办法得到的,所以还需要减法来控制。
代码实现 (Swift):
func mininumCalc(_ X: Int, _ Y: Int) -> Int {
var num = 0
if X >= Y {
return X-Y
}
var rs = Y
while rs != X
{
if rs%2 == 0 && rs > X {
rs = rs/2
}else {
rs = rs+1
}
print("\(rs) \n")
num += 1
}
return num
}
网友评论