zoukankan      html  css  js  c++  java
  • HDU 2674

      题意:求N!mod2009,N<10^9。

      不确定时可以借助计算器(calc)。

      2009=7*7*41,N>=41时,N!因式分解一定含7*7*41,即N!%2009=0.所以只要计算0<=N<=40时的答案就OK。设N!=m+2009*n,N!%2009=m,(N+1)!%2009=[(N+1)*(m+2009*n)]%2009=[m*(N+1)]%2009,有了这个就可以轻易递推求解了。

     1  #include<stdio.h>
     2  int main()
     3  {
     4      int a[41];
     5      int i;
     6      a[0]=1;
     7      /*
     8         tmp=1;  
     9         while(n>=1)  
    10         {  
    11             tmp*=n;  
    12             tmp%=2009;  
    13             n--;  
    14         }  
    15         用long long保存会越界 
    16         
    17         
    18         或者
    19         ans=1;  
    20         for(i=2;i<=n;i++)  
    21         {  
    22             ans*=i;  
    23             ans%=2009;  
    24             if(ans==0)  break;  
    25         }  
    26   
    27  
    28      */
    29      for(i=1;i<41;i++)
    30          a[i]=(a[i-1]*i)%2009;
    31      while(scanf("%d",&i)!=EOF)
    32      {
    33          if(i<41)
    34              printf("%d\n",a[i]);
    35          else
    36              printf("0\n");
    37      }
    38      return 0;
    39  }
  • 相关阅读:
    用struct定义函数
    三、OCTAVE画图
    二、OCTAVE 移动数据
    SQL复习
    Flink处理迟到的数据
    LeetCode题目学习
    CentOS7安装pycharm
    IntelliJ IDEA 刷题利器 LeetCode 插件
    Redis命令学习
    项目杂记
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3052985.html
Copyright © 2011-2022 走看看