5-5 创建线程执行阶乘计算(分数 6)
通过实现接口来定义线程类,在线程体执行阶乘计算。
import java.util.*;
class Factorial // 此处填写代码(2分)
{
private int n;
private long factorial;
Factorial(int n){ this.n=n; }
public long getFactorial() { return factorial; }
@Override
// 此处填写代码(2分){
factorial=1;
for (int i = 2; i <= n; i++)
factorial=factorial*i;
}
}
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
Factorial fac=new Factorial(sc.nextInt());
// 此处填写代码(2分)
th.start();
th.join();
System.out.println(fac.getFactorial());
}
}
import java.util.*;
class Factorial implements Runnable { //声明线程类
private int n;
private long factorial;
Factorial(int n){ this.n=n; }
//返回阶乘
public long getFactorial() { return factorial; }
//线程体
@Override
public void run() { //线程类必须实现接口定义的方法
factorial=1;
for (int i = 2; i <= n; i++)
factorial=factorial*i;
}
}
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
Factorial fac=new Factorial(sc.nextInt());
Thread th = new Thread(fac); //创建线程
th.start(); //启动线程
th.join(); //等待线程结束
System.out.println(fac.getFactorial());//输出阶乘
}
}