シカクマナボ.ITパスポート

ITパスポート 令和4年度 問78

出典:IPA「ITパスポート試験」令和4年度 問78

関数 checkDigit は,10進9桁の整数の各桁の数字が上位の桁から順に格納された整数型の配列 originalDigit を引数として,次の手順で計算したチェックデジットを戻り値とする。プログラム中のaに入れる字句として,適切なものはどれか。ここで,配列の要素番号は1から始まる。

〔手順〕
  • 配列 originalDigit の要素番号1~9の要素の値を合計する。
  • 合計した値が9より大きい場合は,合計した値を10進の整数で表現したときの各桁の数字を合計する。この操作を,合計した値が9以下になるまで繰り返す。
  • (2)で得られた値をチェックデジットとする。
〔プログラム〕
78.png/image-size:536×308

正解と解説を見る

正解:イ

jの最大値は9×9=81なので二桁までです。k=j÷10の商は十の位、j-10×kは一の位を表します。

各桁の和はk+(j-10×k)なので、これをjへ代入します。例えば81なら8+1=9、79なら7+9=16から再度1+6=7と繰り返します。

条件を選んで演習する