2035: A-B Problem 大数相减

2035: A-B Problem

时间限制: 1 Sec  内存限制: 64 MB
提交: 30  解决: 14
您该题的状态:已完成
[提交][状态][讨论版]

题目描述

A+B问题早已经被大家所熟知了,是不是很无聊呢?现在大家来做一下A-B吧。

现在有两个实数A和B,聪明的你,能不能判断出A-B的值是否等于0呢?

输入

有多组测试数据。每组数据包括两行,分别代表A和B。 它们的位数小于100,且每个数字前中可能包含+,- 号。 每个数字前面和后面都可能有多余的0。 每组测试数据后有一空行。

输出

对于每组数据,输出一行。 如果A-B=0,输出YES,否则输出NO。

样例输入

<span style="color:black">1
1

1.0
2.0
</span>

样例输出

<span style="color:black">YES
NO</span>

提示

来源

nyoj高精度运算 

题目智能推荐

1308 1860 1921 1793 1367 1783 

1.去掉前面的符号

2.后导0,及前导0

package 大数;

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		while(in.hasNext())
		{
			BigDecimal s=in.nextBigDecimal();
			BigDecimal k=in.nextBigDecimal();
			
			String temp=s.toPlainString();
			if(temp.charAt(0)=='+') {
				temp=temp.substring(1, temp.length());
			}
			s=new BigDecimal(temp).stripTrailingZeros();
			String temp1=k.toPlainString();
			if(temp1.charAt(0)=='+') {
				temp1=temp1.substring(1, temp1.length());
			}
			k=new BigDecimal(temp1).stripTrailingZeros();
			
			if(s.compareTo(k)==0)
			System.out.println("YES");
			else
			System.out.println("NO");
//			System.out.println();
		}

	}

}

测试数据很渣渣

另外 java的next和nextline的区别

//next()和nextLine()的区别详解
/*next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。
 */

/*nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。
 */


 

猜你喜欢

转载自blog.csdn.net/qq_41325698/article/details/88926777
今日推荐