関数checkDigitは、10しん桁の整数の各桁の数字が上位の桁から順に格納された整数型の配列originalDigitを引数として、次の手順で計算したチェックデジットを戻り値とする。 プログラムの中のaに入れる字句として、適切なものはどれか。 ここで、配列の要素番号は1から始まる。
[手順] | |
(1) | 配列originalDigitの要素番号1〜9の要素の値を合計する。 |
(2) | 合計した値が9より大きい場合は、合計した値を10進の整数で表現した時の各桁の数字を合計する。 この操作を、合計した値が9以下になるまで繰り返す。 |
(3) | (2)で得られた値をチェックデジットとする。 |
[プログラム]
〇整数型:checkDigit(整数型の配列:originalDidit)
整数型:i, j, k
j ← 0
for(iを1からoriginalDiditの要素数まで1ずつ増やす)
j ← j + originalDidit[i]
endfor
while(jが9より大きい)
k ← j÷10の商 /* 10進9桁の数の場合、jが2桁を超えることはない */
a
endwhile
return j
ア | j ← j - 10×k |
イ | j ← k + (j - 10×k) |
ウ | j ← k + (j - 10)×k |
エ | j ← k + j |
答え イ
【解説】
手順からwhile〜endwhileで行うのは変数jにj割る10の商と、j割る10の剰余(余り)の和になり、商は1つ前の行で求めていてkになり、剰余を求める計算式はjを10で割ったときの商がkなので
j - 10×k
なり、aに入るのは
j ← k + (j - 10×k)
(イ)になる。
【キーワード】
・チェックデジット