贪心法

import java.util.Scanner;

public class Two {

    private static long n;

    private static String result;


    public static void main(String[] args){
        read();
        solve();
        printResult();
    }

    private static void read() {

        //System.setIn(Main.class.getResourceAsStream("file.txt"));

        Scanner scanner = new Scanner(System.in);

        n = scanner.nextLong();

        scanner.close();
    }

    private static void solve() {

        result = "" + (n < 0 ? getStep(n * (-1)) :getStep(n));
    }

    private static void printResult() {
        System.out.println(result);
    }

    private static long getStep(long n) {
        if(n < 4)
            return n;

        if(n % 2 == 0){
            return getStep(n/2) + 1;
        }
        else {
            return Math.min(getStep((n - 1)/2) + 2, getStep((n + 1)/2)+ 2) ;
        }
    }
}