描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0
50
样例输出
30414093201713378043612608166064768844377641568960512000000000000
代码如下
import java.util.Scanner;
/**
* Created by lcc on 2017/5/26.
*/
public class dashuju {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int[] cal = new int[10010];
int num = input.nextInt();
cal[0] = 1;
for(int index = 1; index <= num; ++index )
{
for(int i = 0; i < 10000; i++)
{
cal[i] = cal[i]*index;
}
for(int i = 0; i < 10000; i++)
{
cal[i+4] = cal[i+4]+ cal[i]/10000;
cal[i+3] = cal[i+3]+ cal[i]%10000/1000;
cal[i+2] = cal[i+2]+ cal[i]%1000/100;
cal[i+1] = cal[i+1]+ cal[i]%100/10;
cal[i+0] = cal[i]%10;
}
}
int x = 10000;
while(cal[x] == 0)
x--;
for(int i2 = x; i2 >= 0; i2--)
{
System.out.print(cal[i2]);
}
System.out.println();
}
}
参考