标题:关于阶乘的问题
只看楼主
alonefire
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-2-21
 问题点数:0 回复次数:10 
关于阶乘的问题
一个求阶乘的问题 为什么输入1、2、3、4可以得到想要的结果 而输入20出现数据溢出
main()
{unsigned int n,s=1,S=0;
for (n=1;n<=20;n++)
{s=s*n;
S=S+s;}
printf("%d\n",S);
}
搜索更多相关主题的帖子: 阶乘 
2006-02-21 02:02
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
n定义为 unsigned long

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-21 02:17
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
20!的已经超出了unsigned int的范围 65535
2006-02-21 09:39
天晶子剑
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2006-2-13
得分:0 
定义为unsined long类型即可,
2006-02-21 13:05
alonefire
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-2-21
得分:0 

还是不行啊


2006-02-21 13:37
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
我这儿没装TC,没办法帮你调试..
你试一下:pintf("%ld\n",s);
2006-02-21 13:43
zmetero11
Rank: 1
等 级:新手上路
帖 子:123
专家分:0
注 册:2006-2-5
得分:0 

我在c++爱好者网站上看到一种方法就是把数看作字符串,然后通过操作字符串来实现高位数数据的计算,你不妨试一下


黑色的羽翼笼罩与夜月中,守护...不变<-\^/
2006-02-21 15:06
Xxibug
Rank: 1
等 级:新手上路
威 望:1
帖 子:95
专家分:0
注 册:2006-1-31
得分:0 

说实在话我看不明白你程序求的是什么数的阶乘


=======【天上有人 地上有狼】=======
2006-02-21 15:28
alonefire
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-2-21
得分:0 

谢谢各位 毛病找到了 用%ld输出就可以了


2006-02-21 16:05
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
得分:0 
楼主你的程序好像不是阶乘问题吧?
阶乘应该是n*n-1吧,(n!=0)

2006-02-21 16:27



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




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

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