Thread创建综合输入3个整数a、b、c分别计算其阶乘并输出。特别的,要求按输入顺序的倒序进行输出。而且必须在主线程结束之后进行输出。用Java写
时间: 2024-03-15 11:44:57 浏览: 119
可以参考以下 Java 代码实现:
```java
public class FactorialThread extends Thread {
private int num;
private long result;
public FactorialThread(int num) {
this.num = num;
this.result = 1;
}
@Override
public void run() {
for (int i = 1; i <= num; i++) {
result *= i;
}
}
public long getResult() {
return result;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
Scanner scanner = new Scanner(System.in);
int a, b, c;
System.out.print("请输入第一个整数:");
a = scanner.nextInt();
System.out.print("请输入第二个整数:");
b = scanner.nextInt();
System.out.print("请输入第三个整数:");
c = scanner.nextInt();
FactorialThread t1 = new FactorialThread(a);
FactorialThread t2 = new FactorialThread(b);
FactorialThread t3 = new FactorialThread(c);
t1.start();
t2.start();
t3.start();
t1.join();
t2.join();
t3.join();
System.out.println(t3.getResult());
System.out.println(t2.getResult());
System.out.println(t1.getResult());
}
}
```
在这段代码中,我们定义了一个 `FactorialThread` 类,用于计算给定整数的阶乘。在 `run` 方法中,我们使用一个循环计算阶乘,并将结果保存在 `result` 成员变量中。在 `getResult` 方法中,我们返回计算出的阶乘结果。在主程序中,我们先读取 3 个整数,并分别创建对应的线程。然后启动这 3 个线程,并等待它们结束。最后按照输入顺序的倒序输出每个整数的阶乘。由于 `join` 方法会阻塞主线程,所以输出操作会在 3 个线程结束后进行。
阅读全文