You are asked to calculate factorials of some small positive integers.
Input
An integer t, 1<=t<=100, denoting the number of testcases, followed by t lines, each containing a single integer n, 1<=n<=100.
Output
For each integer n given at input, display a line with the value of n!
题解:题目一定是故意的,用了好多small,其实这道题用java里面的BigInteger类才能够过=。=
在这里积累一下:
- 头文件:import java.math.BigInteger;
- BigInteger 表示任意大的整数,原则上是,只要你的计算机的内存足够大,可以有无限位的
- 常用的值:BigInteger.ONE、BigInteger.TEN、BigInteger.ZERO
- 常用的函数:基本的加减乘除,取模,指数,左右移,与或非,异或等都有,用的时候查就试了。列举常见的如下表
Valueof 赋初值,从别的类型转换过来 add 加法 subtract 减法 multiply 乘法 divide 除法 remainder 余数 pow 指数 gcd 公约数 shiftLeft 左移 xor 异或 intValue 转换成int equals(CompareTo) 判断相等
这道题的代码如下:
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.math.BigInteger; 5 6 public class Main { 7 public static void main(String[] args)throws IOException{ 8 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 9 BigInteger[] fac = new BigInteger[101]; 10 fac[0] = fac[1] = BigInteger.ONE; 11 12 for(int i = 2;i <= 100;i++) 13 { 14 BigInteger temp = BigInteger.valueOf(i); 15 fac[i] = fac[i-1].multiply(temp); 16 } 17 18 int t = Integer.parseInt(bf.readLine()); 19 while(t-- > 0){ 20 int num = Integer.parseInt(bf.readLine()); 21 System.out.println(fac[num]); 22 } 23 } 24 25 }