标题:阶乘的倒数和出不来???
只看楼主
初学者小Q
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2008-4-5
 问题点数:0 回复次数:3 
阶乘的倒数和出不来???
我想求∑1/n!
编以下程序,但n>2时∑1/n!恒等于1,这是为什么啊?
main()
{
int n=1,i=1,m;
float x=0;
printf("m=");
scanf ("%d",&m);
for (i=1;i<=m;i++);
{ n*=i;
  x+=1/n;
}
printf("x=%10.8f",x);
}

[[it] 本帖最后由 初学者小Q 于 2008-4-19 17:17 编辑 [/it]]
搜索更多相关主题的帖子: 倒数 阶乘 float int main 
2008-04-19 17:10
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
1/n==0

学习需要安静。。海盗要重新来过。。
2008-04-19 17:22
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
得分:0 
改1.0/n

" border="0" />
2008-04-19 17:28
初学者小Q
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2008-4-5
得分:0 
谢谢了,我刚发完帖就发现1/n==0,但不知道怎么改。可1.0/n竟解决了,是因为数据类型改变了吗?如果这样有必要把所有变量设为float型吗?新问题又出现了,n定义为float和n定义为int,在m>=8会出现不同值。而且float型值较大。n!值应该不会变吧,1/n!就不同了呢,是因为int和float取值范围不同呢。int:-32768~32767
float:-3.4*1e38~3.4*1e38。7!还在int范围内,而8!就超了。所以,将n定义为float型更好吧!

[[it] 本帖最后由 初学者小Q 于 2008-4-19 18:23 编辑 [/it]]
2008-04-19 17:45



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




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

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