回答編集履歴
1
追記
answer
CHANGED
@@ -1,3 +1,19 @@
|
|
1
1
|
`int k = 1;`
|
2
2
|
の場所はあってますか?
|
3
|
-
whileの中にあるので常に`k`は`1`で初期化されて`j=j/2;`の計算に入らないような
|
3
|
+
whileの中にあるので常に`k`は`1`で初期化されて`j=j/2;`の計算に入らないような
|
4
|
+
|
5
|
+
(追記)
|
6
|
+
そもそも、このロジックはうまくいきますか?
|
7
|
+
|
8
|
+
・jにiの3倍+1した値を入れる
|
9
|
+
・kに1を入れる
|
10
|
+
・jが1ではない間ループする
|
11
|
+
・・kが奇数ならjを3倍+1した値にする
|
12
|
+
・・kが偶数ならjを半分にする
|
13
|
+
・・kを1増やす
|
14
|
+
・・iとjが一致したらループを抜ける
|
15
|
+
|
16
|
+
jは、3倍と半分を繰り返しているので、どんどん増えていきます
|
17
|
+
jはiより大きい値からスタートしているので、iに近づくことがないような・・・
|
18
|
+
|
19
|
+
ぜんぜん的外れなことを言っていたらごめんなさい
|