問題
次の擬似言語プログラムを実行したとき、変数resultの値はいくつか。 整数型: n ← 123 整数型: result ← 0 while (n > 0) result ← result + (n mod 10) n ← n / 10 endwhile
選択肢
- 1ア 3
- 2イ 6
- 3ウ 12
- 4エ 123
正解
2. イ 6
詳しい解説を見る解説を閉じる
解説
このプログラムは、n mod 10で最下位の桁を取り出してresultに加算し、nを10で割って(整数除算)桁を1つ落とす処理を繰り返す、各桁の和を求めるアルゴリズムである。n=123をトレースすると、1回目は123 mod 10=3を加算してn=12、2回目は12 mod 10=2を加算してn=1、3回目は1 mod 10=1を加算してn=0となりループ終了。result=3+2+1=6でイが正解である。アの3は1回目だけで終了したと誤読した値、ウの12は途中のnの値との混同、エの123は処理前の初期値をそのまま答えた誤りである。頻出ポイント:mod 10と10による整数除算の組合せは数値の桁分解の定石であり、基数変換・回文数判定・チェックディジット計算など応用問題の土台として頻出である。
一問一答
科目A 180問+科目B 60問