Description
输入一个正整数n,输出n!的值。
其中n!=123*…*n。
Input
输入包含一个正整数n,n≤1000。
Output
输出n!的准确值。
Sample Input
10
Sample Output
3628800
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n,num[5000],i,j,s=0,l=0,k=0; //存储最大数组为5000,因为即是每一个数都是1000也最多有三千个0
cin>>n;
memset(num,0,sizeof num);
num[0]=1;
for(i=1;i<=n;i++)
{
for( j=0;j<5000;j++)
{s=num[j]*i+l;
l=s/10; //只需考虑进位除对10求余外剩下的数都可以进到下一位,也能进到下一位
num[j]=s%10;
}
}
for(i=4999;i>=0;i--)
{if(num[i])break;
}
for(;i>=0;i--)cout<<num[i];
return 0;
}