import java.util.*;
import java.math.*;
public class BASIC30 {
public static void main(String[] args) {
//阶乘的运算,因为计算出来的数据会足够的大,所以这个地方使用阶乘
Scanner scanner = new Scanner(System.in);
//只能将对应的字符串转化为BigInteger,不能将int类型进行转化
BigInteger m = scanner.nextBigInteger();
BigInteger n = new BigInteger("1");
BigInteger num = new BigInteger("1");
//BigInteger 可以直接的读入,但是也可以先读入字符串,之后再次的将字符串转化为BigInteger
//但是bigInteger不能直接的使用+—*/ 有比较的方法 compareTo 但是没有大于或者小于
//也就是这个时候是需要进行转化的
while(m.compareTo(n)!=0)
{
//n表示的是1,每次来和m进行相关的比较,看比较的结果是否最后乘以到了1
//m表示的是我输入的那个数字,每次减1来进行累成的
num=num.multiply(m);
//本来n就是表示的1,所以直接的除掉n就好了是吗???
m=m.subtract(n);
}
System.out.println(num);
}
}
题目提示使用数组,但是可以直接的使用java的bigInteger 大数类型
需要注意的就是构造的时候一般是将字符串转化为此类型
并且此类型没有四则元素的符号,仅仅只能使用对应的方法进行比较
注意相应的转化就好