collegiate-programming-contest-test.rar - 仅供大家学习交流的Java题目
一家银行希望采用光学字符识别系统自动读出支票中的账号,组成账号的每个数字都是 7 段数
位体。一种图象处理软件可以将组成数字的横段和竖段分别转换成 ASCII 码中的竖线‘|’和下划线
‘_’。如果显示正常,则 10 个数字的序列应该具有如下形态:
支票中的账号有 9 位数字,但由于光学扫描装置可能会漏检某些数位段,所以 9 位数字未必都能正确
地被扫描转换成对应的 ’|’ ’_’字符形式。为了容错和纠错,对于一个 9 位账号 d9d8…d1,设定其校
验条件为:
(d1+2d2+3d3+…+9d9) mod 11 = 0
你需要设计一个程序,从扫描转换的结果推测原始的账号,假定:
(1) 若经扫描转换的某组数字全部保存了正确的数字形式而且满足校验条件,则该组数字就是原
始的账号;
(2) 9 位数中最多只有一位在扫描转换中失去正确的数字形式;
(3) 扫描转换不会引入额外的数位段。
当检测到数位段时,扫描转换程序将输出ASCII 码的’|’或’_’;当检测到空白区域时,将输出’.’。(具体见Doc文件)
,2011-02-21 11:20:02,下载3次