| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 582 人关注过本帖
标题:[求助]关于递归求解问题
只看楼主 加入收藏
Bill_Gates
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-24
收藏
 问题点数:0 回复次数:3 
[求助]关于递归求解问题

#include<iostream>
using namespace std;
int jecheng(int n)
{
if(n==0)
return 1;
else
return n*jecheng(n-1);
}
int main()
{
int p,i;
double sum=0.0;
cin>>p;
if(p<1||p>100)
cin>>p;
for(i=1;i<=p;i++)
{
sum+=1/jecheng(i);
}
cout<<"sum="<<sum<<endl;
return 0;
}
这段程序是求S=1+1/1!+1/2!+1/3!+1/4!+......1/n!
N的值大于1小于100
为什么不能输出正确的值?

[此贴子已经被作者于2006-4-3 22:35:20编辑过]

搜索更多相关主题的帖子: 递归 求解 
2006-04-03 22:22
gototheworld
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2006-3-24
收藏
得分:0 
以下是引用Bill_Gates在2006-4-3 22:22:00的发言:

#include<iostream>
using namespace std;
double jecheng(int n)
{
if(n==0)
return 1;
else
return n*jecheng(n-1);
}
int main()
{
int p,i;
double sum=0.0;
cin>>p;
if(p<1||p>100)
cin>>p;
for(i=1;i<=p;i++)
{
sum+=1/jecheng(i);
}
cout<<"sum="<<sum<<endl;
return 0;
}
这段程序是求S=1+1/1!+1/2!+1/3!+1/4!+......1/n!
N的值大于1小于100
为什么不能输出正确的值?



路漫漫其修远兮 吾将上下而求索
2006-04-04 09:46
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
得分:0 

#include<iostream>
using namespace std;
int jecheng(int n)
{
if(n==0)
return 1;
else
return n*jecheng(n-1);
}
int main()
{
int p,i;
double sum=1.0;//这里应该是1.0

cin>>p;
if(p<1||p>100)
cin>>p;
for(i=1;i<=p;i++)
{
sum+=(1/(double)jecheng(i));//这里需要类型转换,如果不进行类型转换小数点以后会被舍去。
}

cout<<"sum="<<sum<<endl;
return 0;
}

[此贴子已经被作者于2006-4-4 10:11:39编辑过]


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-04-04 10:08
Bill_Gates
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-2-24
收藏
得分:0 

明白了,谢谢了~


2006-04-05 10:17
快速回复:[求助]关于递归求解问题
数据加载中...
 
   



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

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