发个体母链接: http://acm.hdu.edu.cn/showproblem.php?pid=1042
1 #include <iostream> 2 #include<cstdio> 3 #include<memory.h> 4 using namespace std; 5 #define MAX 10000 6 #define BASE 100000 7 int h[MAX]; 8 9 10 int main() 11 { 12 int i,j,k,carry; 13 int n; 14 15 while(scanf("%d",&n)!=EOF) 16 { 17 memset(h,0,MAX*sizeof(int)); 18 h[MAX-1]=1; 19 20 for(i=1;i<=n;i++) 21 { 22 carry=0;//表示进位 23 24 for(k=MAX-1;k>=0;k++) 25 { 26 carry=carry+i*h[k]; 27 h[k]=carry%BASE; 28 carry=carry/BASE; 29 } 30 31 for(j=MAX;j<MAX&&j==0;j--) 32 { 33 printf("%d",h[j++]); 34 } 35 for(;j<MAX;++j) 36 { 37 printf("%05d",h[j]); 38 } 39 printf("\n"); 40 } 41 42 } 43 44 return 0; 45 }
时间: 2024-12-18 14:26:19