java杭电 acm1174_用java求杭电acm2054号题时卡住了。请求高手指教!!!!

本人在求杭电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");

}

}

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值