题目1076:N的阶乘
#include "iostream"
#include "stdio.h"
#include "math.h"
#include "vector"
#include "queue"
#include "memory.h"
#include "algorithm"
#include "string"
using namespace std;
int n;
int main()
{
int a[10000];
int i,j;
while(scanf("%d",&n)!=EOF)
{
if(!n)
{
printf("1\n");
continue;
}
memset(a,0,sizeof(a));
int len=1;
a[1]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=len;j++)
a[j]*=i;
for(j=1;j<=len;j++)
{
if(a[j]<10) continue;
int pos=j;
while (pos<=len)
{
if(a[len]>9) len++;
a[pos+1]+=a[pos]/10;
a[pos]%=10;
pos++;
}
}
}
for(i=len;i>=1;i--)
printf("%d",a[i]);
cout<<endl;
}
}