求n个正整数连接成一排,组成一个最大的多位整数
2017-09-05 13:01
274 查看
设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如: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
以此为准则,采用冒泡排序的方法将字符串按大小排序,然后输出就可以了
如: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
以此为准则,采用冒泡排序的方法将字符串按大小排序,然后输出就可以了
相关文章推荐
- 设有n个正整数,将他们连接成一排,组成一个最大的多位整数
- 设有n个正整数,将他们连接成一排,组成一个最大的多位整数
- Java实现:n个正整数,将它们连接成一排,组成一个最大的多位整数。(输入:n(n个整数),依次输入n个整数)
- 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
- n个正整数,联接成一排,组成一个最小(最大)的多位整数
- n个正整数,联接成一排,组成一个最大(最小)的多位整数 python
- 设有n个正整数 (n<=20), 将它们连接成一排, 组成一个最大的多位整数
- java题: 设有n个正整数,将它们联接成一排,组成一个最大的多位整数。例如:N=3时,3个整数13、312、343联成的最大整数为:34331213;
- 设有n个正整数,将他们连接成一排,组成一个最小的多位整数
- 设有n个正整数,将它们联接成一排,组成一个最小的多位整数
- n个正整数联接成一排,组成一个最小的多位整数
- n个正整数联接成一排,组成一个最小的多位整数
- 设有n个正整数(n<=20),将它们联成一排,组成一个最大的多位数
- 有一个数组,由正整数、负整数、零组成,求和最大的连续子数组
- 贪心算法——n个数连接得到最小或最大的多位整数
- 猪八戒编程题2018_拼接N个整数成一个最大的多位整数
- 【字符串排序】n个数连接得到最小或最大的多位整数
- 贪心算法——输入任意一个正整数N,将其分成多个互不相同的整数,和为N,乘积最大
- 返回一个整数数组中最大子数组的和(数组头尾连接)
- 贪心算法——n个数连接得到最小或最大的多位整数