常规long 只能储存2^63-1 无法用求出 50!,大数类可以,在使用大数类的时候所有的运算都要调用方法
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
// 大数类的所有运算都要调用方法
public class Main {
public static void main(String[] args) {
//用大数类求任意数的阶乘
BigInteger i = new BigInteger("1");
BigInteger i1 = new BigInteger("1");
BigInteger sum = new BigInteger("1");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
BigInteger b2 = BigInteger.valueOf(n);
for ( i = BigInteger.valueOf(1); i.compareTo(b2)<=0; i=i.add(i1)) {
sum = sum.multiply(i);
}
System.out.println(sum);
}
}