1190: 零起点学算法97——A == B ?(Java)
WUSTOJ 1190: 零起点学算法97——A == B ?
Description
Give you two integer numbers A and B, if A is equal to B, you should print “YES”, or print “NO”.
Input
each test case contains two integer numbers A and B.
Output
for each case, if A is equal to B, you should print “YES”, or print “NO”.
Sample Input
1 2
2 2
3 3
4 3
Sample Output
NO
YES
YES
NO
HINT
注意A、B数位最多100位。
代码
/**
* 用时:472ms
* @author wowpH
* @version A1.1
* @date 2019年4月13日 下午9:35:04
*/
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
private Scanner sc;
private BigInteger A, B;
public Main() {
sc = new Scanner(System.in);
while(sc.hasNext()) {
A = sc.nextBigInteger();
B = sc.nextBigInteger();
if(A.equals(B)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
sc.close();
}
public static void main(String[] args) {
new Main();
}
}
我为什么没有早点发现这个大数类(BigInteger),这么好用的一个类。
虽然上面代码是正确的的,但是我想知道为什么下面这个就不行呢?
double 的表示范围是:1.7976931348623157e+308 这个为什么不行呢?
/**
* 提交:Wrong Answer
* @author wowpH
* @version A1.0
* @date 2019年4月13日 下午9:35:04
*/
import java.util.Scanner;
public class Main {
private Scanner sc;
private double A, B;
public Main() {
sc = new Scanner(System.in);
while(sc.hasNext()) {
A = sc.nextDouble();
B = sc.nextDouble();
if(A == B) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
sc.close();
}
public static void main(String[] args) {
new Main();
}
}