[プログラマー]コーラの推測


問題の説明


1937年にCollatzが提案したこの推測は,与えられた数が1になる前に次のタスクを繰り返し実行すれば,すべての数を1にすることができるということである.操作は次のとおりです.
1-1. 入力した数字が偶数の場合は2に分けられます.
1-2. 入力した数字が奇数の場合、3を掛けて1を加算します.
2.結果が1になるまで、同じ操作を繰り返します.
例えば、入力された数字が6であれば、6→3→10→5→16→8→4→2→1の計8回が1となる.上記の操作を何回繰り返すかを示す関数を返します.解決策を完了します.ただし、タスクを500回繰り返しても1未満の場合は、-1を返します.

せいげんじょうけん


入力された数値numは1または800000未満の整数です.

I/O例



マイコード
class Solution {
    public int solution(int num) {
        int answer = 0;
        long n = num;
        while(n != 1) {
        	if(n % 2 == 0) {
        		n /= 2;
        	} else {
        		n = n * 3 + 1;
        	}
        	answer++;
            if(answer >= 500){
                answer = -1;
                break;
            }
        }
        return answer;
    }
}
他者コード