Description
用高精度方法,求N!N!的精确值(NN以一般整数输入)。
Input
10
Output
3628800
Samples
Input
10
output
3628800
#include<bits/stdc++.h>
using namespace std;
long long a[1000001],m,n,i,j,k,l=1,x;//l表示长度;
int main()
{
cin>>n;
for(i=1;i<=1000;i++)//这里为了时间度到1000;
{
a[i]=0;
}
a[1]=1;
for(i=1;i<=n;i++)
{
x=0;
for(j=1;j<=l;j++)
{
a[j]=a[j]*i+x;
x=a[j]/10;
a[j]=a[j]%10;
}
while(x>0)
{
l++;
a[l]+=x;
x=a[l]/10;
a[l]=a[l]%10;
}
}
for(i=l;i>=1;i--)
{
cout<<a[i];
}
return 0;
}
其实利用的基本原理就是:字符数组,位运算,循环;
可以试着调试程序进行摸索;