一个数只能减一或者乘二,从一个数变为另一个数的最小操作次数

很遗憾,做完的时候才AC了55%
如果 a>=b 的 话就只能用减法
如果a

package test;


import java.util.Scanner;

public class Main {


    public static void main(String[] args) {

        new Main().getInfo();
    }

    public void getInfo() {
        Scanner sc = new Scanner(System.in);
        long a = sc.nextLong();
        long b = sc.nextLong();
        if (a == b) System.out.println(0);
        if (a > b) System.out.println(a - b);
        int count = 0;
        while (a < b) {
            if (b % 2 == 0) {
                b /= 2;
                count++;
            }else {
                b += 1;
                b/=2;
                count += 2;
            }
        }
        count += a - b;
        System.out.println(count);
    }
}

你可能感兴趣的:(算法)