問 題
図のフローチャートにおいて、入力 a が、 1 ≦ a ≦ 16 を満たす整数であるとき、出力される c の最大値はいくらか。
1. 4
2. 5
3. 6
4. 7
5. 8
解 説
具体的に考えます。
a = 1 とすると
(a,n,c) = (1,1,0)y 0を出力です。 a = 2 でも同様とわかります。
a = 3 とすると
(a,n,c) = (3,3,0)ny
(a,n,c) = (3,1,1)y → 1 を出力です。
a = 4 とすると
(a,n,c) = (4,4,0)nn
(a,n,c) = (4,6,1)ny
(a,n,c) = (4,2,2)y → 2 を出力です。
a = 5 とすると
(a,n,c) = (5,5,0)nn
(a,n,c) = (5,7,1)nn
(a,n,c) = (5,9,2)ny
(a,n,c) = (5,3,3)ny
(a,n,c) = (5,1,4)y → 4 を出力です。
a が 3 の倍数で始まってしまうと、ぽんぽん 3 で割れてしまい、3n + 1 でも 1回 で3 で割れるため、3n + 2 が c を大きくするとわかります。a = 8,11,14 について、後は検討します。
a = 8 とすると(以降、「(a,n,c) =」 及び 「yn」 も省略)
8,8,0
8,10,1
8,12,2
8,4,3
8,6,4
8,2,5 → 5 を出力
a = 11 とすると
11,11,0
11,13,1
11,15,2
11,5,3 ← 15÷ 3 = 5 で、また 3n+2 なので、非常にいい!
11,7,4
11,9,5
11,3,6
11,1,7 → 7 を出力 です。
a = 14 は、18 がぽんぽんと 3 で連続で割れてしまうため、残念ながら 7 を超えません。
以上より、正解は 4 です。
コメント