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