ITパスポート試験
令和4年 第78問
問78
関数checkDigitは、10進9桁の整数の各桁の数字が上位の桁から順に格納された整数型の配列originalDigitを引数として、次の手順で計算したチェックデジットを戻り値とする。プログラム中の a に入れる字句として、適切なものはどれか。ここで、配列の要素番号は1から始まる。
〔手順〕
(1) 配列originalDigitの要素番号1〜9の要素の値を合計する。
(2) 合計した値が9より大きい場合は、合計した値を10進の整数で表現したときの各桁の数字を合計する。この操作を、合計した値が9以下になるまで繰り返す。
(3) (2)で得られた値をチェックデジットとする。
〔プログラム〕
〇整数型:checkDigit(整数型の配列:originalDigit)
整数型:i, j, k
j ← 0
for(iを1からoriginalDigitの要素数まで1ずつ増やす)
j ← j + originalDigit[i]
endfor
while(jが9より大きい)
k ← j ÷ 10 の商 /*10進9桁の数の場合、jが2桁を超えることはない*/
[ a ]
endwhile
j ← j − 10 × k | |
j ← k +(j − 10 × k) | |
j ← k +(j − 10)× k | |
j ← k + j |
(令和4年 ITパスポート試験 第78問 テクノロジ系/アルゴリズムとプログラミング)
解説
(イ)j ← k +(j − 10 × k)
この問題の正解率:26.4%(やや低い)
この問題の正解率:26.4%(やや低い)
仮にj=31で計算すると下記のようになります。
正解の j は 3+1=4 なので4が求められれば正解(「k ← j ÷ 10 の商」という処理があるので、kはjの10の位が格納されます)。
- ア 31-10×3=1
- イ 3+(31-10×3)=4
- ウ 3+(31-10)×3=66
- エ 3+31=36
よって、正解は イ です。
選択中のリスト
テクノロジ系アルゴリズムとプログラミング過去問一覧