#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<math.h> int a[10005]; //每次都计算 a数组*k void ans(int k){ //123 int i; //每一位都乘以k for(i=0;i<10000;i++){ a[i] = a[i]*k; } for(i=0;i<10000;i++){ a[i+1] = a[i+1] + a[i]/10; a[i] = a[i]%10; } } int main(){ int n,i; scanf("%d",&n); a[0] = 1; for(i=1;i<=n;i++){ ans(i); } int p=1000; for(i=p;i>=0;i--){ if(a[i]!=0){ p = i; break; } } for(i=p;i>=0;i--){ printf("%d",a[i]); } return 0; } /************************************************************** Problem: 1285 User: admin Language: C Result: Accepted Time:24 ms Memory:1184 kb ****************************************************************/