問題
選択肢
- 14
- 25
- 36
- 47
正解
3. 6
詳しい解説を見る解説を閉じる
解説
このプログラムは、nが1より大きい間nを2で割り続け、その回数をcountに数える処理であり、64が1になるまでの除算回数を求めている。トレースすると64→32→16→8→4→2→1と変化し、矢印の数すなわち除算は6回であるからcount=6となり、「6」が正解である。これは2の何乗が64かという計算(2の6乗=64、log2 64=6)と同じである。4や5は途中のn=4やn=2で終了したと誤読した値、7はn=1になった後にもう1回数えてしまった誤りである。頻出ポイント:データを繰り返し半分にする操作の回数はおよそlog2 nで見積もれるという感覚が重要で、二分探索の最大比較回数の計算(要素数nに対しおよそlog2 n回)に直結する頻出知識である。
一問一答
科目A 180問+科目B 60問