2808 - 求n!的值
时间限制 : 1 秒
内存限制 : 128 MB
输入n,求n!的值。n!=123...n
题目输入
一行:一个正整数n,1<=n<=2000
题目输出
一行:表示n!的数
输入/输出样例
输入格式
20
输出格式
2432902008176640000
C++解答
#include<iostream> #include<algorithm> using namespace std; const int N = 6000; int a[N]; void fact(int n){ fill(a,a+N,0); a[0]=a[1]=1; for (int i=1; i<=n; i++) { for (int j=1; j<=a[0]; j++) a[j]*=i; for (int j=1; j<=a[0]; j++) { a[j+1]+=a[j]/10; a[j]%=10; } while (a[a[0]+1]) { a[0]++; a[a[0]+1]=a[a[0]]/10; a[a[0]]%=10; } } } void output(int a[]){ for (int i=a[0]; i>=1; i--) cout<<a[i]; cout<<endl; } int main(){ int n; cin>>n; fact(n); output(a); return 0; }