iOS 算法题-最小运算次数

作者: DeveloperBlock | 来源:发表于2019-10-15 15:08 被阅读0次
    使用代码实现求最小运算次数:
        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
        }
    

    相关文章

      网友评论

        本文标题:iOS 算法题-最小运算次数

        本文链接:https://www.haomeiwen.com/subject/ffybyctx.html