T9的空间

You will never walk alone!

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  69 随笔 :: 0 文章 :: 28 评论 :: 0 Trackbacks

大数阶乘,10000以内。http://acm.hdu.edu.cn/showproblem.php?pid=1042

/*************************************
Problem : 1042 ( N! )     Judge Status : Accepted
RunId : 783801    Language : G++    Author : Torres
Code Render Status : Rendered By HDOJ G++ Code Rander Version 0.01 Beta
*******************************
*/


#include
<iostream>
#include
<cmath>
using namespace std;

int re[40000];
void bigplus(int n)
{
    
int i,flag=0;
    
for(i=1;i<=re[0];i++)
    
{
        re[i]
=re[i]*n+flag;
        
if(re[i]>99999){
            flag
=re[i]/100000;
            re[i]
%=100000;
        }

        
else flag=0;
    }

    
if(flag){ re[i]=flag;re[0]++;}
}


int main()
{
    
int n,i;
    
while(scanf("%d",&n)!=EOF){
        memset(re,
0,sizeof(re));
        re[
0]=1;re[1]=1;
        
for(i=2;i<=n;i++)
            bigplus(i);
        printf(
"%d",re[re[0]]);
        
for(i=re[0]-1;i>=1;i--)
            printf(
"%05d",re[i]);
        printf(
"\n");
    }

    
return 0;
}



posted on 2008-09-09 20:03 Torres 阅读(555) 评论(0)  编辑 收藏 引用 所属分类: Number Theory

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理