トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
ABC-059-B Comparison
■■■問題■■■
2つの正整数A,Bが与えられるので、その大小を比較してください。
■■■入力■■■
A
B
●1 <= A,B <= 10の100乗
●入力のA,Bの先頭は0でない
■■■出力■■■
A>B のときGREATER、A<B のときLESS、A=B のときEQUALと出力せよ。
C#のソース
using System;
using System.Collections.Generic;
class Program
{
static string InputPattern = "Input1";
static List<string> GetInputList()
{
var WillReturn = new List<string>();
if (InputPattern == "Input1") {
WillReturn.Add("36");
WillReturn.Add("24");
//GREATER
//36 > 24 なので、答えはGREATERです
}
else if (InputPattern == "Input2") {
WillReturn.Add("850");
WillReturn.Add("3777");
//LESS
}
else if (InputPattern == "Input3") {
WillReturn.Add("9720246");
WillReturn.Add("22516266");
//LESS
}
else if (InputPattern == "Input4") {
WillReturn.Add("123456789012345678901234567890");
WillReturn.Add("234567890123456789012345678901");
//LESS
}
else {
string wkStr;
while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
}
return WillReturn;
}
static void Main()
{
List<string> InputList = GetInputList();
string A = InputList[0];
string B = InputList[1];
int MaxLength = Math.Max(A.Length, B.Length);
A = A.PadLeft(MaxLength, '0');
B = B.PadLeft(MaxLength, '0');
if (A.CompareTo(B) > 0) Console.WriteLine("GREATER");
if (A.CompareTo(B) == 0) Console.WriteLine("EQUAL");
if (A.CompareTo(B) < 0) Console.WriteLine("LESS");
}
}
解説
前ゼロをパディングして、文字列として比較してます。