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 }