差值
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
-
输入一个整数数组,将它们连接起来排成一个数,找出能排出的所有数字中最大,最小的两个,输出两个数的差值。例如输入数组{1, 2},则输出9。
- 输入
- 第一行输入一个整数T,表示有T组测试数据。每组测试数据的第一行输入一个整数n(0<n<=1000),第二行输入n个整数ai(0<=ai<2^32)。
- 输出
- 输出最大数最小数的差值,输出占一行。
- 样例输入
-
1 3 1 2 3
- 样例输出
-
198
package demo1; import java.math.BigDecimal; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int caseNo = input.nextInt(); for (int i = 1;i<=caseNo;i++) { int len = input.nextInt(); int [] array = new int[len]; for (int j = 0;j<len;j++) { array[j] = input.nextInt(); } Arrays.sort(array); StringBuffer sb1 = new StringBuffer(); StringBuffer sb2 = new StringBuffer(); for (int j = 0;j<array.length;j++) { sb1.append(array[j]); } for (int j = array.length-1;j>=0;j--) { sb2.append(array[j]); } BigDecimal bmin = new BigDecimal(sb1.toString()); BigDecimal bmax = new BigDecimal(sb2.toString()); System.out.println( bmax.subtract(bmin).intValue()); } } }