zoukankan      html  css  js  c++  java
  • ACM HDU 2674 N! Again(数论)

    继续数论。。


    Problem Description

    WhereIsHeroFrom:            Zty,what are you doing ?
    Zty:                                    Iwant to calculate N!......
    WhereIsHeroFrom:            Soeasy! How big N is ?
    Zty:                                    1<=N <=1000000000000000000000000000000000000000000000…
    WhereIsHeroFrom:            Oh! Youmust be crazy! Are you Fa Shao?
    Zty:                                    No.I haven's finished my saying. I just said I want to calculate N! mod 2009


    Hint : 0! = 1, N! = N*(N-1)!

    Input

    Each linewill contain one integer N(0 <= N<=10^9). Process to end of file.

    Output

    For eachcase, output N! mod 2009

    Sample Input

    4 
    5

    Sample Output

    24
    120
    
    


    /*****************************************************

    数据规模  1<N<10^9,妥妥的要找规律了。。


    从  N = 1  到N = 40  时还都能正常算出,(正常规律  num[i] = num[i-1] * i %2009;  (   1<N<10^9),,,N 为40时,num[N] = 245,可以发现  245 * 41 = 10045 = 2009 * 5,

    所以,就可以知道了,N>40时,输出全部为  0。。。

    ***********************************************************/


    #include<stdio.h>
    #include<iostream>
    using namespace std;
    int num[42];
    void cal()
    {
    	num[0] = 1,num[1] = 1;
    	for(int i = 2;i<42;i++)
    		num[i] = num[i-1]*i%2009;
    }
    int main()
    {
    
    	int n;
    	cal();
    	while(cin>>n)
        {
            if(n>41)
                printf("%d
    ",0);
            else
                printf("%d
    ",num[n]);
        }
    	return 0;
    }
    


  • 相关阅读:
    vscode git
    ionic2/cordova自定义插件集成aar包
    ui-router实现返回上一页功能
    《深入理解Spark:核心思想与源码分析》一书正式出版上市
    记一次Web服务的性能调优
    程序设计——冲突
    Oracle执行计划的查看
    程序设计——规则
    Tomcat源码分析——Session管理分析(下)
    Tomcat源码分析——Session管理分析(上)
  • 原文地址:https://www.cnblogs.com/gray1566/p/3704296.html
Copyright © 2011-2022 走看看