求10000以内n的阶乘
求10000
以内n
的阶乘。
【输入】
只有一行输入,整数n
(0≤n≤10000
)。
【输出】
一行,即n!
的值。
【输入样例】
4
【输出样例】
24
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int a[1000001],b[1001],c[1001];
int main()
{
//string s;
//int a[1000001],b[1001],c[1001];
memset(a,0,sizeof(a));
//memset(b,0,sizeof(b));
//memset(c,0,sizeof(c));
int i,j,l1,l2=0,n;
cin>>n;
a[1]=1;
if(n==1)
{
cout<<"1";
}
else
{
l1=1;
for(i=2;i<=n;i++)
{
int x=0;
for(j=1;j<=l1;j++)
{
a[j]=a[j]*i+x;
if(a[j]>=10)
{
x=a[j]/10;
a[j]=a[j]%10;
if(j==l1)
{
l1++;
}
}
else
x=0;
}
}
for(i=l1;i>=1;i--)
{
cout<<a[i];
}
}
return 0;
}