ここでケースを取得しました。それを解決しようとしていますが、その方法がわかりません。
ケースは次のとおりです。数値が2で割り切れる場合は、半分にカットします。そうでない場合は、3を掛けて、この結果を1増やします。これは、結果が1になるまで続きます。
これをJavaで設定する方法がわかりません。if、else if、elseで試してみました。しかし、これを機能させる方法がわかりません。
任意のヒント?
これは疑似コードです。それに従ってください。動作するはずです。
while num > 1
if num mod 2 is 0
num/=2
else
num*=3
++num
テストと除算のステップにはビットごとの演算を使用しますが、数値の除算とモジュロよりも高速である必要があります。
while (x != 1) {
x = (x & 1) != 0 ? x * 3 + 1 : x >> 1;
}
あなたが何をしようとしているのかわからないが、ヒント:
x = (x % 2 == 0) ? (x / 2) : (x * 3 + 1)