到目前为止我的代码看起来像这样:
public class ThreeSort {
public static void main(String[] args) {
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
int num3 = Integer.parseInt(args[2]);
int x = Math.min(num1, num2);
int min = Math.min(x,num3);
int z = Math.max(num1, num2);
int max = Math.max(z, num3);
int a = 0;
int mid = 0;
while (mid >= min && mid <= max) {
mid = a;
}
System.out.println(min);
System.out.println(a);
System.out.println(max);
}
Run Code Online (Sandbox Code Playgroud)
我知道如何做最小和最大但我遇到中间问题.知道如何在没有条件语句的情况下这样做吗?
在这种情况下,它有一个简单的算法:
Run Code Online (Sandbox Code Playgroud)mid = Math.max(Math.min(num1,num2), Math.min(Math.max(num1,num2),num3));
此外,运算符^
表示按位xor
.所以另一种方式是:
mid=num1^num2^num3^max^min;
例:
public static void main(String[] args) {
System.out.println(mid(70, 3, 10));
}
static int mid(int a, int b, int c) {
int mx = Math.max(Math.max(a, b), c);
int mn = Math.min(Math.min(a, b), c);
int md = a ^ b ^ c ^ mx ^ mn;
return md;
}
Run Code Online (Sandbox Code Playgroud)
输出: 10.
同样如下面的 OldCurmudgeon所说,您可以mid
使用以下公式计算:
Run Code Online (Sandbox Code Playgroud)int mid = num1 + num2 + num3 - min - max;
归档时间: |
|
查看次数: |
2356 次 |
最近记录: |