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


  • 相关阅读:
    突破极验验证的验证码
    c# 自定义多选下拉列表2
    c#多选下拉框(ComboBox)
    图片缩放+拖动(html)
    使用天天模拟器开发android应用
    FineUI开源版之TreeGrid(修改)
    FineUI开源版之TreeGrid实现
    c# 窗体最小化后截图实现
    c#一个简单的实例告诉你,多继承还可以这么来
    设置控件Enable=false,控件颜色不变
  • 原文地址:https://www.cnblogs.com/gray1566/p/3704296.html
Copyright © 2020-2023  润新知