BigInteger的范围:
BigInteger 任意大的整数,原则上是,只要你的计算机的内存足够大,可以有无限位的,
BigInteger 任意大的实数,可以处理小数精度问题。
BigInteger的常见用法:
(1)赋值:将int型的数赋值给BigInteger,BigInteger.valueOf(k);
(2)运算:
add:+ ;
subtract:- ;
multiply:*;
divide: /;
mod:% ;
pow:^(次方);
gcd,abs:公约数,绝对值;
shiftLeft:<<;
shiftRight:>> ;
and:&&;
or:||;
xor:异或;
not:!非;
compareTo:根据该数值是小于、等于、或大于 val 返回 -1、0 或 1;
equals:判断两数是否相等,也可以用compareTo来代替;
min,max:取两个数的较小、大者;
intValue,longValue,floatValue,doublue:把该数转换为该类型的数的值。
(3)进制转换:
String toString();//默认转换为十进制
String toString(int radix);//转换为radix进制
eg:String str = new BigInteger("555",10).toString(2); //将十进制的555转换为2进制
大整数排序
对N个长度最长可达到1000的数进行排序。
输入描述:
输入第一行为一个整数N,(1<=N<=100)。
接下来的N行每行有一个数,数的长度范围为1<=len<=1000。
每个数都是一个正数,并且保证不包含前缀零。
输出描述:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
示例:
示例1:
输入
3
11111111111111111111111111111
2222222222222222222222222222222222
33333333输出
33333333
11111111111111111111111111111
2222222222222222222222222222222222
代码:
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
BigInteger[] nums = new BigInteger[n];
for(int i=0; i<n; i++){
nums[i] = in.nextBigInteger();
}
Arrays.sort(nums);
for(int i=0; i<n; i++){
System.out.println(nums[i]);
}
}
}
}