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;
    }
    


  • 相关阅读:
    利用Selenium自动化web测试
    【译】.NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱
    SlickGrid example 8:折线图
    SlickGrid example 7:鼠标事件
    SlickGrid example 6:Ajax加载
    SlickGrid example 5:带子项的展开收缩
    SlickGrid example 4: 过滤
    CentOS下配置iptables防火墙 linux NAT(iptables)配置
    ntp server
    parted
  • 原文地址:https://www.cnblogs.com/gray1566/p/3704296.html
Copyright © 2011-2022 走看看