描述:输入不超过1000的正整数n,输出 n! = 1*2*3*4*5* ……*n的精确值。
样例输入:30
样例输出:265252859812191058636308480000000
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
#define Max 3000
int main()
{
int f[Max] = {0} ;
// memset(f,0);
f[0] = 1;
int n;
int s=0,c=0;
cout<<"请输入想要求的阶乘的值n:";
cin>>n;
for(int i=2;i<=n;i++)
{
for(int j=0;j<Max; j++)
{
s= f[j] * i + c;
f[j] = s % 10;
c = s / 10;
}
}
int k = 0;
for( k=Max-1;k>=0;--k)
{
if( f[k])
break;
}
for(int j=k;j>=0;--j)
cout<<f[j];
cout<<endl;
return 0;
}