57 求N!
作者: xxx时间限制: 1S章节: 一维数组
问题描述 :
给你一个整数N(0 ≤ N ≤ 10000),你的任务是计算并输出 N!
输入说明 :
输入多行,每行一个N。
输出说明 :
对于每个输入N,在一行中输出N!
行首与行尾为空格,两组输出之间无空行。
输入范例 :
2
1
100
输出范例 :
2
1
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
AC代码:
#include <stdio.h>
#include <stdlib.h>
void jie(int n)
{
if(n==0||n==1)
{
printf("1\n");
}
else
{
int a[100000]={0};
int sum,t;
a[0]=1;
int k=1;
for(int i=2;i<=n;i++)
{
sum=0;
for(int j=0;j<k;j++)
{
t=a[j]*i+sum;
a[j]=t%10;
sum=t/10;
}
while(sum)
{
a[k++]=sum%10;
sum/=10;
}
}
for(int q=k-1;q>=0;q--)
printf("%d",a[q]);
printf("\n");
}
}
int main()
{
int num;
while(scanf("%d",&num)!=EOF)
{
jie(num);
}
return 0;
}