nyoj 73-比大小 (Java, 高精度)

73-比大小


内存限制:64MB 时间限制:3000ms 特判: No
通过数:15 提交数:64 难度:3

题目描述:

给你两个很大的数,你能不能判断出他们两个数的大小呢?

比如123456789123456789要大于-123456

输入描述:

每组测试数据占一行,输入两个不超过1000位的10进制整数a,b
数据保证输入的a,b没有前缀的0。
如果输入0 0表示输入结束。测试数据组数不超过100组

输出描述:

如果a>b则输出“a>b”,如果a<b则输出“a<b”,如果相等则输出“a==b”。

样例输入:

111111111111111111111111111 88888888888888888888
-1111111111111111111111111  22222222
0 0

样例输出:

a>b
a<b

分析:
  1、通过Java中的BigInteger进行大数处理

核心代码:
1 String temp = a.subtract(b).toString();
2 char temp2 = temp.charAt(0);
3 if (temp2 == '-')
4     System.out.println("a<b");
5 else
6     System.out.println("a>b");

Java代码实现(AC):

 1 import java.util.*;
 2 import java.io.*;
 3 import java.math.*;
 4 
 5 public class Main {
 6     public static void main(String args[]) {
 7         Scanner scan = new Scanner(System.in);
 8         BigInteger a, b;
 9         while(true){
10             a = scan.nextBigInteger();
11             b = scan.nextBigInteger();
12             if (a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO))
13                 break;
14             if (a.equals(b))
15                 System.out.println("a==b");
16             else{
17                 String temp = a.subtract(b).toString();
18                 char temp2 = temp.charAt(0);
19                 if(temp2 == '-')
20                     System.out.println("a<b");
21                 else
22                     System.out.println("a>b");
23             }
24         }
25     }
26 }
原文地址:https://www.cnblogs.com/GetcharZp/p/9112090.html