一、题目
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。
二、思路
先打印出出现最小的一个除了0之外的数字,然后按自然序打印出所有的数字
三、代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
while (scanner.hasNextInt()) {
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
for (int i = 1; i < 10; i++) {
for (int j = 0; j < arr[i]; j++) {
System.out.print(i);
// 已经打印出了第一个数字
if (i == 1 && j == 0) {
for (int k = 0; k < arr[0]; k++) {
System.out.print(0);
}
}
}
}
}
}
}