描述
A+B问题早已经被大家所熟知了,是不是很无聊呢?现在大家来做一下A-B吧。
现在有两个实数A和B,聪明的你,能不能判断出A-B的值是否等于0呢?
输入
有多组测试数据。每组数据包括两行,分别代表A和B。
它们的位数小于100
每个数字前面和后面都可能有多余的0。
输出
对于每组数据,输出一行。
如果A-B=0,输出YES,否则输出NO
样例输入
1.0
2.0
样例输出
YES
代码如下:
import java.util.Scanner;
/**
* Created by lcc on 2017/6/5.
*/
public class AjianB {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str1 = input.next();
String str2 = input.next();
String[] str1a = str1.split("\\."); //这样就变成2个大数相减的问题了
String[] str2b = str2.split("\\.");
boolean zhengshu = xiangjiann(str1a[0], str2b[0]);
boolean xiaoshu = xiangjiann(str1a[1], str2b[1]);
if(zhengshu && xiaoshu) {
System.out.print("true");
} else {
System.out.print("false");
}
}
public static boolean xiangjiann(String a, String b) {
int changdu = a.length() - b.length() > 0 ? a.length() : b.length();
int[] aint = new int[changdu]; //利用数组默认为0 排除多余0或者少0的干扰
int[] bint = new int[changdu];
for (int i1 = 0; i1 < a.length(); i1++) {
aint[a.length() - 1 - i1] = Integer.parseInt(a.substring(i1, i1 + 1));
}
for (int i1 = 0; i1 < b.length(); i1++) {
bint[b.length() - 1 - i1] = Integer.parseInt(b.substring(i1, i1 + 1));
}
for (int i = 0; i < changdu; i++) {
if (aint[i] != bint[i]) {
return false;
}
}
return true;
}
}