描述
求10000以内n的阶乘。
输入
只有一行输入,整数n(0<=n<=10000)。
输出
一行,即n!的值。
样例输入
100
样例输出
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
思路:被乘数的每一位都乘一遍乘数
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a[100000]={1};
int n,len=1,jinwei=0,t;//c,k,m;
cin>>n;
for(int j=1;j<=n;j++)
{
for(int i=0;i<len;i++)
{
t = a[i]*j + jinwei;
a[i] = t%10;
jinwei = t/10;
}
while(jinwei)
{
a[len] = jinwei%10;
jinwei /= 10;
len++;
}
}
for(int i=len-1;i>=0;i--)
{
cout<<a[i];
}
return 0;
}