题目大意:                   要求n!%2009,n<10^9。 解题思路:                 那暴力肯定TLE+MLE,行不通。不过发现当n>=2009的时候,n!%2009=0.这个时候,就只需要求出前面的2009个数的阶乘,后面的打出0即可。 代码:
#include
using namespace std;
int main(void)
{
    int n;
    while(scanf("%d", &n) == 1)
    {
        if(n >= 2009)
        {
            printf("0\n");
            continue;
        }
        int ans = 1;
        for(int i = 1; i <= n; i++)
        {
            ans *= i;
            ans %= 2009;
        }
        printf("%d\n", ans);
    }
    return 0;
}
 

相关文章:

  • 2021-08-28
  • 2021-12-21
  • 2022-12-23
  • 2021-10-20
  • 2022-01-17
  • 2022-12-23
  • 2021-07-04
  • 2022-12-23
猜你喜欢
  • 2022-01-23
  • 2021-09-08
  • 2021-10-29
  • 2021-11-20
  • 2021-06-29
相关资源
相似解决方案