我的代码并未实现 输出最小的组合数
package shuz;
import java.util.Scanner;
public class Pjs {
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
Scanner sc=new Scanner(System.in);
int [] arr=new int [3];
arr[0]=sc.nextInt();
arr[1]=sc.nextInt();
arr[2]=sc.nextInt();
System.out.println(pj(arr));
}
static String pj(int [] array)
{
int ljz=1;
for(int i=0;i<3;i++)
for(int j=i+1;j<3;j++)
{ //判断数1和数2哪个的最高位更大或则相同
//如果数1的最高位大于数2,则在第二个的if语句执行数的交换
//如果数1的最高位等于数2,
int a1=array[i],b1=array[j];
while(a1>=10)
a1=a1/10;
while(b1>=10)
b1=b1/10;
if(a1<b1)
ljz=0;
if(ljz==1)
{
int temp;
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
String res="";
for(int i=0;i<3;i++)
res=res+array[i];
return res;
}
}
运行截图:
public static void main(String[] args) {
System.out.print("请输入三个数字:");
Scanner scanner = new Scanner(System.in);
int[] arr = new int[3];
for(int i = 0; i < 3; i++) {
arr[i] = scanner.nextInt();
}
List<Integer> arrList = new ArrayList<>();
for (int i : arr) {
arrList.add(i);
}
arrList.sort((o1, o2) -> o1 - o2);//按照升序先把进行排序
StringBuilder stringBuilder = new StringBuilder();
for (int i : arrList) {
stringBuilder.append(i);//把排序后的数字用字符串的形式拼接成新的数字
}
System.out.println(stringBuilder);//如果需要int,可以用Interge.parseInt(字符串)的形式转换以下
}
//PS:代码仅是一种解题方案,按照这个思路参考一下,不希望提问的人直接复制。也希望有不同意见的人指导,互相学习