gpt4 book ai didi

java - [作业][Java] 找出 5 个整数输入中最大的数字组合?

转载 作者:行者123 更新时间:2023-12-02 05:02:00 24 4
gpt4 key购买 nike

这是我们必须在类里面完成的家庭作业。正如标题所说,我必须找到一种方法来计算给定 5 个用户输入的最大数字组合。IE中如果用户输入5,6,3,4,2那么程序会找到最大的数字,所以65432。

有一个问题是,由于我们目前只在类里面学习,所以我们不允许使用数组、字符串或循环。基本上我们只能使用运算符和 if 语句。我将如何构建一个不包含过多“if”语句的程序?

编辑:基本上我的目标是沿着这些思路

if (num1 >= num2 && num1 >= num3 && num1 >= num4 && num1 >= num5){
numV1 = num1;
if (num2 >= num3 && num2 >= num4 && num2 > num5){
numV2 = num2;
if (num3 >= num2 && num3 >= num4 && num3 > num5){
numV2 = num2;
if (num4 >= num3 && num4 >= num3 && num4 > num5){
numV2 = num2;
if (num5 >= num2 && num5 >= num3 && num5 > num4){
numV2 = num2;

等等,但这似乎效率极低。

最佳答案

让我们看看我们能做什么:

int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;

public class Tester {
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;

public static void main(String args[]) {
new Tester();
}

public Tester(){
checkThisNumber(5);
checkThisNumber(6);
checkThisNumber(3);
checkThisNumber(4);
checkThisNumber(2);
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
}

private void checkThisNumber(int n) {
if (n < num2) {
num1 = n;
} else if (n < num3) {
num1 = num2;
num2 = n;
} else if (n < num4) {
num1 = num2;
num2 = num3;
num3 = n;
} else if (n < num5) {
num1 = num2;
num2 = num3;
num3 = num4;
num4 = n;
} else {
num1 = num2;
num2 = num3;
num3 = num4;
num4 = num5;
num5 = n;
}
}
}

这是一个非常粗糙的排序算法。如果您需要使其变得更加简单,因为您无法使用构造函数和方法:

public static void main(String args[]) {
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int tNum1 = 5;
int tNum2 = 6;
int tNum3 = 3;
int tNum4 = 4;
int tNum5 = 2;
num5 = tNum1;
if (tNum2 < num5){
num4 = tNum2;
} else {
num4 = num5;
num5 = tNum2;
}
if (tNum3 < num4){
num3 = tNum3;
} else if (tNum3 < num5) {
num3 = num4;
num4 = tNum3;
} else {
num3 = num4;
num4 = num5;
num5 = tNum3;
}
if (tNum4 < num3){
num2 = tNum4;
} else if (tNum4 < num4){
num2 = num3;
num3 = tNum4;
} else if (tNum4 < num5){
num2 = num3;
num3 = num4;
num4 = tNum4;
} else {
num2 = num3;
num3 = num4;
num4 = num5;
num5 = tNum4;
}
if (tNum5 < num2){
num1 = tNum5;
} else if (tNum5 < num3){
num1 = num2;
num2 = tNum5;
} else if (tNum5 < num4){
num1 = num2;
num2 = num3;
num3 = tNum5;
} else if (tNum5 < num5){
num1 = num2;
num2 = num3;
num3 = num4;
num4 = tNum5;
} else {
num1 = num2;
num2 = num3;
num3 = num4;
num4 = num5;
num5 = tNum5;
}
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
}

就运动而言,正确的解决方案是:

public static void main(String args[]) {
List<Integer> list = new ArrayList<>();
list.add(5);
list.add(6);
list.add(3);
list.add(4);
list.add(2);
Collections.sort(list);
for (Integer i : list) {
System.out.println(i);
}
}

关于java - [作业][Java] 找出 5 个整数输入中最大的数字组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com