Noip1998 提高组3 卢斯加法表

著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字。
例如:
其含义为:
L+L=L, L+K=K, L+V=V, L+E=E
K+L=K, K+K=V, K+V=E, K+E=KL
……
E+E=KV
根据这些规则可推导出: L=0, K=1, V=2, E=3

(图文无关,就这个意思)
同时可以确定该表表示的是 4 进制加法

程序输入:
n( n≤9)表示行数。
以下 n 行,每行包括 n 个字符串,每个字串间用空格隔开。(字串仅有一个为‘+’号,其它都由大写字母组成)


程序输出:

① 各个字母表示什么数,格式如: L=0,K=1, ……
② 加法运算是几进制的。
③ 若不可能组成加法表,则应输出“ERROR!”

 

由于加法表是完整的,所以行数有多少,进制就是 行数-1 ;
在J进制中,设一位数A,一位数x;
统计ans={A+1,A+2,……A+(J-1)}中有多少个一位数;


有一位数,说明A+x-J<0即A<J-x;
故当x最大时,A=J-x-1即为所求


由于加法表是完整的,即x从1至J-1,
故设ans中一位数共有y个,就有x=y;


而J-x-1就是ans中两位数的个数(想一想为什么?)<PS:其实我也不知道,但是实践证明就是这样>
所以找到ans中两位数的个数,就是A的值了;


如果你不幸找到了两个一样的A,不着急,这不怪你,输出ERROR就好。

posted @ 2016-01-30 08:54  Cxsheng  阅读(406)  评论(0编辑  收藏  举报