设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
解题思路:
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
import java.util.Scanner;
public class ReversePrint {
public static void main(String[] args) {
System.out.println("请至少输入两个数字,用空格隔开");
Scanner scanner1 = new Scanner(System.in);
String[] s = scanner1.nextLine().split(" ");
new ReversePrint().zuhe(s);
}
private void zuhe(String[] array) {
String temp;
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-1-i;j++){
if (!compare(array[j] ,array[j+1])) {
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
String sum = "";
for(int i=0;i<array.length;i++){
sum += array[i];
}
System.out.println(sum);
}
public boolean compare(String o1, String o2) {
if(((o1 + o2).compareTo(o2 + o1)) > 0) {
return true;
} else {
return false;
}
}
}
输出:
请至少输入两个数字,用空格隔开
12 45 9 5 7 44
975454412
解题思路:
其实这就是个字符串的冒泡排序,如果字符串A+B>B+A那么认为A>B
以此为准则,采用冒泡排序的方法将字符串按大小排序,然后输出就可以了