
8 、int f(int x){ return ((x>0)?x*f(x-1):3); }
4个回答
展开全部
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是函数的递归调用
f(x) 当x小于等于零时f(x)=1
f(3)带到函数中,3大于零,所以函数返回值为f(3-1) + f(1) 即f(2) f(1)之和
2大于零,所以f(2)=f(1)+f(-1), 而1仍然大于0,所以f(1) = f(0)+f(-1)
根据条件所以f(1)=2 f(2)=3
f(3)
=f(2)+f(1)
=(f(1) + f(-1)) + f(1)
=((f(0)+f(-1))+f(-1)) + (f(0)+f(-1))
=((1+1)+1)+(1+1)
=5
f(x) 当x小于等于零时f(x)=1
f(3)带到函数中,3大于零,所以函数返回值为f(3-1) + f(1) 即f(2) f(1)之和
2大于零,所以f(2)=f(1)+f(-1), 而1仍然大于0,所以f(1) = f(0)+f(-1)
根据条件所以f(1)=2 f(2)=3
f(3)
=f(2)+f(1)
=(f(1) + f(-1)) + f(1)
=((f(0)+f(-1))+f(-1)) + (f(0)+f(-1))
=((1+1)+1)+(1+1)
=5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
double f1(double x);
double f2(double x);
double f3(double x);
void diaoyong(double x,double(*pf)(double));
int main()
{
double x;
cin>>x;
if(x<=0)
{
diaoyong(x,f1);
}
else if(x> 0 && x<10)
{
diaoyong(x,f2);
}
else if(x >= 10)
{
diaoyong(x,f3);
}
return 0;
}
double f1(double x)
{
return x-1;
}
double f2(double x)
{
return 2*x+3;
}
double f3(double x)
{
return x*x+10;
}
void diaoyong(double x,double(*pf)(double))
{
cout<<(*pf)(x)<<endl;
}
using namespace std;
double f1(double x);
double f2(double x);
double f3(double x);
void diaoyong(double x,double(*pf)(double));
int main()
{
double x;
cin>>x;
if(x<=0)
{
diaoyong(x,f1);
}
else if(x> 0 && x<10)
{
diaoyong(x,f2);
}
else if(x >= 10)
{
diaoyong(x,f3);
}
return 0;
}
double f1(double x)
{
return x-1;
}
double f2(double x)
{
return 2*x+3;
}
double f3(double x)
{
return x*x+10;
}
void diaoyong(double x,double(*pf)(double))
{
cout<<(*pf)(x)<<endl;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-25
展开全部
2*1*3=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询