あなたの乗り物はここにありますあなたの乗り物はここにあります
トピックリンク:https://www.luogu.com.cn/problem/P1200
タイトル説明
ご存知のように、すべての彗星の後ろにはUFOがあります。これらのUFOはしばしば地球上の忠実な支持者を集めるためにやって来ます。残念ながら、彼らのUFOは、各旅行で1グループのサポーターしか連れて行けません。したがって、彼らは巧妙な計画を使用して、これらのグループに彗星に誰が連れ去られるかを事前に知らせる必要があります。彼らは各彗星に名前を付け、これらの名前を使用して、グループが特定のグループから削除されたかどうかを判断しました(これらの彗星に名前を付けたのは誰だと思いますか?)。マッチング方法の詳細は以下に記載されています。あなたの仕事は、グループの名前と彗星の名前によって、彗星の後ろのUFOによってグループが連れ去られることができるかどうかを決定するプログラムを書くことです。
グループ名と彗星名はどちらも、次の方法で数値に変換されます。最終的な数値は、名前内のすべての文字の積です。ここで、Aは1、ZZは26です。たとえば、USACOチームは21×19×1×3×15 = 17955です。グループのデジタルmod47が彗星のデジタルmod47と等しい場合は、持ち去る準備ができている必要があることをグループに伝える必要があります。(「amod b」は、aをbで割った余りです。34mod10は4に等しいことに注意してください)
彗星とグループの名前を読み込んで、上記のスキームで2つの名前が一致するかどうかを調べるプログラムを作成します。一致する場合は「GO」を出力し、一致しない場合は「STAY」を出力します。グループ名と彗星名はどちらも、スペースや句読点を含まない大文字の文字列(6文字以内)です。
入力フォーマット
1行目:彗星の名前を示す1〜6の長さの大文字の文字列。
2行目:チームの名前を表す1〜6の長さの大文字の文字列。
出力フォーマット
番号
サンプルの入力と出力
#1を入力してください
COMETQ
Hvngar
出力#1
GO
入力#2
ABSTAR
USACO
出力#2
滞在
問題解決のアイデア:
文字列オブジェクト内の文字をtoCharArray()を使用して文字配列に変換してから、64(つまり、-'A' + 1)を減算して、英語の文字を対応するシリアル番号に変換します。
コードは次のように表示されます。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
char c[] = a.toCharArray();
String b = sc.nextLine();
char d[] = b.toCharArray();
long ans = 1;
for (char x : c) {
ans *= x - 64;
}
long count = 1;
for (char x : d) {
count *= x - 64;
}
if (ans % 47 == count % 47)
System.out.println("GO");
else
System.out.println("STAY");
}
}