本人在求杭电acm2054号题(http://acm.hdu.edu.cn/showproblem.php?pid=2054)时遇到了点问题。2054这题本人已经用BigDecimal类中的compareTo方法AC了。但当我换另一种解法解时却老是...
本人在求杭电acm2054号题(http://acm.hdu.edu.cn/showproblem.php?pid=2054)时遇到了点问题。2054这题本人已经用BigDecimal类中的compareTo方法AC了。但当我换另一种解法解时却老是AC不了。求指教。我的方法是先把两个BigDecimal类型数据转换成字符串类型,再分别进行尾部除0处理。但用这种方法却AC不了。请大家帮帮忙,看下代码错在哪了。在下感激不尽。(本人知道直接用compareTo方法直接比较就可以了。没必要用我说的另一种方法搞得那么复杂。但本人只是想尝试用多种方法求解。巩固下基础而已。嘿,谁知道就卡住了。纠结!!)
代码如下:
import java.util.Scanner;
import java.math.BigDecimal;
public class Test2054 {
public static String removeZero(String str){
int index=0;
for(int i=str.length()-1;i>=0;i--){
index=i;
if(str.charAt(i)!='0'){
if(str.charAt(i)=='.'){
index=i-1;
}
break;
}
}
return str.substring(0,index+1);
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
BigDecimal a=sc.nextBigDecimal();
BigDecimal b=sc.nextBigDecimal();
String s1=removeZero(a.toString());
String s2=removeZero(b.toString());
if(s1.equals(s2))
System.out.println("YES");
else
System.out.println("NO");
}
}
}
展开