
int i;int f(int x){return((x>0)?f(x-1)+f(x-2):1);} i=f(3); i等于多少
1个回答
展开全部
这是函数的递归调用
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询