import java.util.Scanner;
/**
* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323
*
* @author Pengmeiyan
*
*/
public class MinNum {
public static String PrintMinNumber(int[] numbers) {
String s = "";
for (int i = 0; i < numbers.length; i++) {
if (i + 1 < numbers.length) {
String s1 = numbers[i] + "" + numbers[i + 1];
String s2 = numbers[i + 1] + "" + numbers[i];
if (s1.compareTo(s2) > 0) {
// 交换位置
int temp = numbers[i];
numbers[i] = numbers[i + 1];
numbers[i + 1] = temp;
i = -1;// 从头开始遍历
}
}
}
for (int i = 0; i < numbers.length; i++)
s += numbers[i];
return s;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++)
a[i] = sc.nextInt();
System.out.println(PrintMinNumber(a));
}
}
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323
最新推荐文章于 2020-11-29 01:36:07 发布