アルゴリズムとプログラミング(全23問中17問目)

9けたの数字に対して,次のルールでチェックディジットを最後尾に付けることにした。チェックディジットを付加した10けたの数字として,正しいものはどれか。
ルール1:
各けたの数字を合計する。
ルール2:
ルール1で得られた数が2けたになった場合には,得られた数の各けたの数字を合計する。この操作を,得られた数が1けたになるまで繰り返す。
ルール3:
最終的に得られた1けたの数をチェックディジットとする。

出典:平成22年秋期 問88

  • 1234567890
  • 4444444444
  • 5544332211
  • 6655333331
正解 問題へ
分野:テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:アルゴリズムとプログラミング
解説
チェックディジット(check digit, 検査数字)とは、符号の入力誤りなどを検出するために元の符号に付加される数字のことです。主にバーコードの読み取りなどにおける、入力値のチェックに使われます。バーコードは光学読み取り装置(OMR)によってデジタル情報に変換されます。バーコードにゴミが付着していたりした場合に、誤った数が入力されてしまうのを防ぐために検査文字を付加しています。

設問のルールでは先頭から9文字に操作を行って、10文字目のチェックディジットを求めています。このルールに従って各選択肢のチェックディジットを求めてみましょう。
  • 1+2+3+4+5+6+7+8+9=45
    4+5=9
    最後尾の数字は 0 になっているので誤りです。
  • 4×9=36
    3+6=9
    最後尾の数字は 4 になっているので誤りです。
  • 5+5+4+4+3+3+2+2+1=29
    2+9=11
    結果が2桁なのでもう一度足して、
    1+1=2
    最後尾の数字は 1 になっているので誤りです。
  • 6+6+5+5+3+3+3+3+3=37
    3+7=10
    結果が2桁なのでもう一度足して、
    1+0=1
    求めたチェックディジットが最後尾の数字と一致するので正しいことになります。

Pagetop