问题
给出两个词,在数字根战中找到获胜者。
通过以下方式定义单词的数字词根:
- 字母表中的每个字母都有一个数字: A = 1,B = 2,C = 3,...,Z = 26
- 将每个字母的值相加,得出单词的总数。以“ CAT”为例。C + A + T = 3 + 1 + 20 = 24
- 将构成结果的所有单个数字相加:24 => 2 + 4 = 6
- 重复步骤3,直到达到一位数字。那个数字是单词的数字根。
规则:
- 如果胜出者的数字根数大于另一个,则宣布获胜者。
- 如果数字根值相等,则通过从两个单词中删除每个最高值字母的实例并重新计算来缩短单词。
- 重复步骤1和2,直到有赢家或其中一个单词仅剩一个字母(或没有字母)为止。
- 如果经过缩短过程后数字根值相等,则将较长的单词声明为获胜者。
- 如果单词的长度相等,并且经过缩短处理后未找到获胜者,则不会声明获胜者。
特殊规则:
- 在计算数字根本身时,不允许使用模数。它可以在其他任何地方使用。
- 假设单词将仅由大写字母组成-没有标点符号,没有空格等。
输入
通过stdin(逗号分隔)将单词拉入。方法参数,或者您想要的。在解决方案或代码中明确说明如何解析或准备单词。
输出值
显示获胜词。如果没有获胜者,则显示“ STALEMATE”。
例子:
输入:CAN,BAT
CAN = 18 = 9
BAT = 23 = 5
输出:CAN
输入:ZOO,NO
ZOO = 56 = 11 = 2
NO = 29 = 11 = 2
OO = 30 = 3
N = 14 = 5
输出:无
更新:必须使用标准输入(stdin)读取输入,并将单词作为逗号分隔的字符串。
更新:添加了一些示例进行测试。
更新:阐明了在平局的情况下移除了最高价值的字母-这也会稍微改变停止条件-如果一个单词是一个字母或零个字母长,则缩短过程将停止