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()里面,要附上结果图。 展开
#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()里面,要附上结果图。 展开
2个回答
展开全部
是这样?
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询