HDU 2.2.8

来源:互联网 发布:sql怎么做全备份 编辑:程序博客网 时间:2024/06/01 07:37

1、简单描述

输出N!,输出结果对2009求余。

2、一开始用普通的递归,TLE。以为有涉及了什么我没见过的数学知识,结果41!%2009=0,大于等于41的阶乘对2009求余后都为0.

#include<bits/stdc++.h>
using namespace std;
int N(int n)
{
    if(n==0||n==1) return 1;
    else
        return (n*N(n-1))%2009;
}
int main()
{
    int n;
    while(cin>>n)
    {
        if(n<=40)
            cout<<N(n)<<endl;
        else
            cout<<0<<endl;
    }
    return 0;
}