1、所用到的数据类型:BigInteger
2、BigInteger的加减乘除运算不在支持普通的‘+’,‘-’,‘*’,‘/’,BigInteger的加减乘除:
(1)加法:add();
(2)减法:subtract();
(3)乘法:multiply();
(4)除法:divide();
3、运行结果
4、上代码
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
public class two {
public static void main(String[] args) {
ThreadPoolExecutor executor=(ThreadPoolExecutor) Executors.newFixedThreadPool(10);
List<Future<BigInteger>>resultList=new ArrayList<>();
for(int i=0;i<10;i++){
multiply multiply=new multiply(i*10+1,(i+1)*10);
Future<BigInteger>result=executor.submit(multiply);
resultList.add(result);
}
BigInteger total=BigInteger.valueOf(1);
for (int i=0;i<resultList.size();i++){
Future<BigInteger>result= resultList.get(i);
BigInteger sum=BigInteger.valueOf(1);
try {
sum=result.get();
total=total.multiply(sum);
}catch (InterruptedException e){
e.printStackTrace();
}catch (ExecutionException e){
e.printStackTrace();
}
}
System.out.println("1-100的乘积为:"+total);
executor.shutdown();
}
}
import java.math.BigInteger;
import java.util.Random;
import java.util.concurrent.Callable;
public class multiply implements Callable<BigInteger> {
private int start;
private int end;
public multiply(int start,int end){
this.end=end;
this.start=start;
}
@Override
public BigInteger call() throws Exception {
BigInteger sum=BigInteger.valueOf(1);
for (int i=start;i<=end;i++){
sum=sum.multiply(BigInteger.valueOf(i));
}
Thread.sleep(new Random().nextInt(1000));
System.out.println(Thread.currentThread().getName()+": "+sum);
return sum;
}
}