分析:
本来以为大数,后来才发现要对2009求余,所以一下子就简单了。。。。。。
当n=41时,n!%2009==0。之后的就为0了。
#include"stdio.h"
#include"string.h"
int dp[41];
void fun()
{
int i;
dp[0]=1;
dp[1]=1;
dp[2]=2;
for(i=3;i<=40;i++)
dp[i]=(dp[i-1]*i)%2009;
}
int main()
{
int n;
int i,j;
fun();
while(scanf("%d",&n)!=-1)
{
if(n>40)printf("0\n");
else printf("%d\n",dp[n]);
}
return 0;
}