A == B ?
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 102921 Accepted Submission(s): 16365
Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input
each test case contains two numbers A and B.
Output
for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2 2 2 3 3 4 3
Sample Output
NO YES YES NO
/*
大数判断A==B(一开始还以为真的是最简单的A==B...)
重点:由于是字符串,所以需要判断小数点后多余的尾数0
例如字符串 1.00和1 在数值上是相等的,但在字符上表现却不相等
所以需要处理1.00后多余的.00,才能判断相等。
思路:由于数值上可能有多余的尾数0,所以对其裁剪便可。
步骤1:首先判断是否为浮点数(判断是否有'.'即可)。
不是便返回原字符串,无需做任何改动。
步骤2:从尾部判断是否有多余的字符0,
有便依次递减记录的下标,否则结束。
步骤3:返回裁剪的字符串。
*/
import java.util.Scanner;
public class Main
{
public static String change_back(String str)
{
// 步骤1:
int index=str.indexOf('.');
if(index==-1)return str;
// 步骤2:
int i;
for(i=str.length()-1;i>index;--i)
if(str.charAt(i)-'0'>0)
break;
// 步骤3:
return index==i?str.substring(0,i):str.substring(0,i+1);
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
String a=cin.next();
String b=cin.next();
a=change_back(a);
b=change_back(b);
if(a.equals(b))
System.out.println("YES");
else
System.out.println("NO");
}
cin.close();
}
}