問題
2つの単語が与えられたら、デジタルルートバトルで勝者を見つけます。
この方法で単語のデジタルルートを定義します。
- アルファベットの各文字には番号が割り当てられます: A = 1、B = 2、C = 3、...、Z = 26
- 各文字の値を追加して、単語を合計します。たとえば、「CAT」を使用します。C + A + T = 3 + 1 + 20 = 24
- その結果を構成するすべての1桁を追加します。24=> 2 + 4 = 6
- 1桁に達するまで手順3を繰り返します。その1桁が単語のデジタルルートです。
ルール:
- デジタルルートが他のルートよりも大きい場合、勝者が宣言されます。
- 場合デジタルルート値が等しい、単語および再計算の両方から最高値の文字のすべてのインスタンスを除去することにより、単語を短縮します。
- 勝者が現れるまで、または単語の1つに文字が1つしか残っていない(または文字が残っていない)まで、手順1と2を繰り返します。
- 短縮プロセスを経た後、デジタルルート値が等しい場合、長い単語が勝者として宣言されます。
- 単語が同じ長さで、短縮プロセスを行った後に勝者が見つからない場合、勝者は宣言されません。
特別なルール:
- デジタルルート自体の計算では、モジュラスの使用は許可されません。他のどこでも使用できます。
- 単語は大文字のみで構成されていると仮定します-句読点やスペースなどは使用できません
入力
標準入力(コンマ区切り)を使用して単語を取り込みます。メソッドパラメータ、または必要に応じて。ソリューションまたはコードで、単語の解析または準備方法を明確にします。
出力
勝った言葉を表示します。勝者がいない場合は、「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
出力:NO
UPDATE:入力は、カンマ区切りの文字列としての単語を使用して、stdinを使用して読み取る必要があります。
更新:テスト対象のいくつかの例を追加しました。
更新:同点の場合に最高値の文字を削除することを明確にしました-これは停止条件もわずかに変更します-単語が1文字または0文字の場合、短縮プロセスは停止します