IPA公式 テクノロジ › アルゴリズムとプログラミング 1 / 18

ITパスポート|アルゴリズムとプログラミング 問1

関数 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
  return j

出典:令和4年度 ITパスポート試験 公開問題 問78(読点「,」を「、」に改変)