1342. 将数字变成 0 的操作次数

1342. 将数字变成 0 的操作次数

 

 

 

 

 

 --解题代码--

一、

 

public int numberOfSteps1(int num) {
        //记录最终结果
        int count = 0;
        while (num != 0) {
            //1.奇数:-1,次数+1
            //判断数字是否为0
            if (num % 2 != 0) {
                num--;
                count++;
                if (num == 0)
                    break;
            }
            // 2. 除2,次数+1
            num /= 2;
            count++;

        }

        return count;

    }

 

二、迭代法

 

 public int numberOfSteps (int num){
        //出口
        if(num == 0) return 0;
        if(num == 1) return 1;
//奇数,偶数 情况不同 if(num%2 == 0) return 1+numberOfSteps(num/2); else return 1+numberOfSteps(num-1); }

 

posted @ 2020-12-08 12:12  进击的小渣渣!!  阅读(121)  评论(0)    收藏  举报