c++用公式求ex=1+x+x2/2!+x3/3!+…+xn/n!

#include<iostream>#include<math.h>usingnamespacestd;intfun(intn){if(n==1)return1;else... #include <iostream>
#include <math.h>
using namespace std;
int fun(int n)
{
if(n==1)
return 1;
else
return n*fun(n-1);
}
//递归求n!
double result(int n)
{

if(n==0)
return 1;
if(n==1)
return x+result(n-1);
else
return pow(x,n)*1.0/fun(n)+result(n-1);
}
//递归求结果
int main()
{
cout<<"用公式求ex=1+x+x2/2!+x3/3!+…+xn/n!\n";
int m;
cin>>m;
fun(m);
result(m);
cout<<fun(m)<<endl<<result(m)<<endl;
return 0;
}
//问题如下,怎么把x的值传进result()里面,要附上结果图。
展开
 我来答
百度网友0b9fc92
2013-10-08 · TA获得超过358个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:227万
展开全部
是这样?
double result(int n,double &x){
 if(n==0)  
  return 1; 
 if(n==1)      
  return x+result(n-1,x); 
 else       
  return pow(x,n)*1.0/fun(n)+result(n-1,x);
}//递归求结果
主函数
int main(){
 cout<<"用公式求ex=1+x+x2/2!+x3/3!+…+xn/n!\n";
 double x;
 int m;
 cin>>m; 
 cin>>x;
 fun(m); 
 result(m,x);
 cout<<"fun(m)="<<fun(m)<<endl<<"result(m,x)="<<result(m,x)<<endl;
 system("pause");
 return 0;
}

cpucash
2013-10-08 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:970万
展开全部
这种做法肯定溢出,因为n很大的话,n!会很大,不能这么做
找规律,每一项的差别是x/i(i是循环因子)
那么可以做这个中心运算代码
float s=1,t=1;
int i;

for(i=1;t<0.00001;i++)
{
t*=1.0*x/i;
s+=t;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式