您的位置:首页 > 其它

hdu 2054

2017-03-26 15:47 330 查看

A == B ?

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 102921    Accepted Submission(s): 16365


[align=left]Problem Description[/align]
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
 

[align=left]Input[/align]
each test case contains two numbers A and B.

 

[align=left]Output[/align]
for each case, if A is equal to B, you should print "YES", or print "NO".
 

[align=left]Sample Input[/align]

1 2
2 2
3 3
4 3

 

[align=left]Sample Output[/align]

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: