足跡-sokuseki-

りかの日進月歩の記録

AOJ1368 Quality of Check Digits

Quality of Check Digits | Aizu Online Judge

問題概要

0000~9999の4桁の数の後ろにチェックディジットを1つつけて5桁の数を作る。チェックディジット  e は、4桁の数の数字を上から  abcd としたとき、
 e =( ((0 \otimes a) \otimes b) \otimes c) \otimes d
と定義される。ここで  x \otimes y は与えられた表の  x  y 列目の数字を指す。
与えられる表の  i  i 列目は必ず0になっているので、 ((((0 \otimes a) \otimes b) \otimes c) \otimes d) \otimes e は必ず0になる。これが0にならない場合、誤りを発見したことになる。

0000~9999の4桁の数  x にチェックディジットをつけた5桁の数  y について、以下の2つのどちらかの操作を行った後、 ((((0 \otimes a) \otimes b) \otimes c) \otimes d) \otimes e が0になるような  x はいくつあるか答えよ。

  •  y のある1つの桁の数字を異なる数字にする
  •  y のとなりあう2つの桁の数を入れ替えて、 y とは違う数にする

解法

全探索して愚直に数え上げます。

AIZU ONLINE JUDGE: Code Review