Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1523304
  • 博文数量: 399
  • 博客积分: 8508
  • 博客等级: 中将
  • 技术积分: 5302
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 09:28
个人简介

能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。

文章分类

全部博文(399)

文章存档

2018年(3)

2017年(1)

2016年(1)

2015年(69)

2013年(14)

2012年(17)

2011年(12)

2010年(189)

2009年(93)

分类: LINUX

2010-02-01 14:36:40

//60位的大数与不超过100的数的乘法与除法
// A(n+1)=c(2n,n)/n+1,Catalan数
//递推关系是A(n) = 4n-2/n+1 A(n+1),n<=100
int r[60];
for(i=1;i<60;++i)    //数组存放结果
    r[i]=0;
r[0]=j=1;
for(i=2;i{
    for(k=0;i<=n;++i)
        r[k]*=(4*i-2);//大数乘法,从低位到高位
    for(k=c=0;k    {
        t=r[k]+c;
        r[k]=t%10;
        c=t/10;    //对乘法结果处理进位
    }
    while(c)
    {
        r[j]=c%10;
        c/10;
        ++j;    //乘法最高进位
    }
    for(k=j-1,c=0;k>=0;--k)        //大数除法,从高位到低位
    {
        t=c*10+r[k];
        r[k]=t/(i+1);
        c=t%(i+1);
    }
    while(!r[j-1])            //除法最高位
        --j;
}
阅读(1484) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~