免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6863 | 回复: 4
打印 上一主题 下一主题

[help]超大數求(factorial) [复制链接]

论坛徽章:
0
1 [报告]
发表于 2002-11-05 12:11 |显示全部楼层

[help]超大數求(factorial)

同意syo的说法,如下:
void main(void)
{
        int Data[10000]&#59;
        int Digit&#59;
        int i,r,j,k&#59;
        int N&#59;
        for(i=1&#59;i<10000+1&#59;i++)
                Data=0&#59;

        Data[0]=1&#59;
        Data[1]=1&#59;
        Digit=1&#59;

        printf(&quot;Enter a number what you want to calculus:&quot&#59;
        scanf(&quot;%d&quot;,&amp;N)&#59;

        for(i=1&#59;i<N+1&#59;i++)
        {
                for(j=1&#59;j<Digit+1&#59;j++)
                     Data[j]*=i&#59;
                for(j=1&#59;j<Digit+1&#59;j++)
                {
                        if(Data[j]>;10)
                        {
                                for(r=1&#59;r<Digit+1&#59;r++)
                                {
                                        if(Data[Digit]>;10)
                                                Digit++&#59;
                                                Data[r+1]+=Data[r]/10&#59;
                                                Data[r]=Data[r]%10&#59;
                                }
                        }
                }
                printf(&quot;%d!=&quot;,i)&#59;
                for(k=Digit&#59;k>;0&#59;k--)
                        printf(&quot;%d&quot;,Data[k])&#59;
                printf(&quot;\n&quot&#59;
        }
}

论坛徽章:
0
2 [报告]
发表于 2002-11-07 11:04 |显示全部楼层

[help]超大數求(factorial)

下面引用由syo2002/11/06 05:44pm 发表的内容:
450以后就超过我定的数组1000位了
你可以把第5和第9行的1000加大就行了。
不能这么做,syo你看我的程序,已经这么做了,我们的程序是一样的,可是阶数稍微高一点就出错,就是计算结果是错误的,我怀疑是c自身的原因,求不了太高阶数的阶乘,有谁可以指导一下?是不是这个原因?谢谢

论坛徽章:
0
3 [报告]
发表于 2002-11-07 11:17 |显示全部楼层

[help]超大數求(factorial)

[这个贴子最后由michael009在 2002/11/07 11:18am 编辑]

谢谢,我试一下

论坛徽章:
0
4 [报告]
发表于 2002-11-07 16:24 |显示全部楼层

[help]超大數求(factorial)

我用的bcb,编译、运行都没问题

论坛徽章:
0
5 [报告]
发表于 2002-11-07 16:35 |显示全部楼层

[help]超大數求(factorial)

to syo:
  的确是那个问题,谢谢!但是为什么我用bcb执行时没有出错信息?(尽管结果不对)
  还有,那本书上错误很多,尽管都是小错,但是却很要命:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP