iOS 算法题-最小运算次数

使用代码实现求最小运算次数:
    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
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容