#include<stdio.h> #include<iostream> using namespace std; int a[8000]; int main() { int n; int i; while(scanf("%d",&n)!=EOF)//碰到有EOF的时候一定要用scanf。不要用cin>>n&&n这样的的,不让这样的错误你非常难发现 { if(n==0||n==1) { cout<<"1\n"; continue; } memset(a,0,sizeof(a)); int count=2; int r; a[0]=1; int bit=1; for(i=2;i<=n;i++) { r=0; for(int j=0;j<bit;j++) { int t=a[j]*i+r; r=t/100000; a[j]=t%100000; } if(r>0) { a[bit++]=r; } } int j=0; for(j=8000;j>=0;j--)if(a[j]!=0)break; cout<<a[j]; for(i=j-1;i>=0;i--) { printf("%05d",a[i]); } cout<<endl; } }