标题:大数n的阶乘,为什么提交显示运行错误
只看楼主
z1443043531
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-1-23
结帖率:53.85%
已结贴  问题点数:20 回复次数:6 
大数n的阶乘,为什么提交显示运行错误
http://acm.hdu.


#include <stdio.h>

int main()
{
    int i,n,h,j,t;
    int z[10086];
    while(scanf("%d",&n)!=EOF)
    {
        z[1]=1;t=1;
        for(i=2;i<=n;i++)
        {
            h=0;
           for(j=1;j<=t;j++)
           {
             z[j]=z[j]*i+h;
             h=z[j]/10;
             z[j]=z[j]%10;
           }
         while(h>0)
         {
            z[j]=h%10;
            h=h/10;
            j++;
         }
          t=j-1;
        }
        for(i=t;i>=2;i--)
            printf("%d",z[i]);
        printf("%d\n",z[1]);
    }
    return 0;
}
2015-02-13 16:36
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
得分:5 
没错啊  运行正确!!!

授人以鱼,不如授人以渔
2015-02-13 17:08
z1443043531
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-1-23
得分:0 
提交就显示运行错误……
2015-02-13 17:34
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
得分:0 
回复 3楼 z1443043531
编译器的问题吧

授人以鱼,不如授人以渔
2015-02-13 17:42
z1443043531
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-1-23
得分:0 
回复 4楼 执笔画江山
不会吧,有提交对的呀,我想知道运行错误都有什么情况
2015-02-14 16:01
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:15 
int z[10086];改成int z[100086];
数组小了,你一个整形数只表示1位10进制数,1万位肯定不够。通常会让一个整形数表示5位,数组即可设小点。

能编个毛线衣吗?
2015-02-15 05:41
z1443043531
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-1-23
得分:0 
回复 6楼 wmf2014
那是不是10000位的话最小数组应该是50000
2015-02-15 13:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442004-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.148206 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved