function fn(y) {
if (y == 1) return 10000;
// 补充代码
return fn(y-1)*t+fn(y-1);
}
登陆购买课程后可参与讨论,去登陆吧
同学你好,这是一个递归函数,函数中的代码解释如下:
当传入的参数值为1时(即 y==1),则执行return 10000;否则就执行return fn(y - 1) * t + fn(y - 1)。
其中,return 语句会终止函数的执行并返回函数的值,所以如果传入的参数值为1时,则直接返回10000,如图
如果传入的参数值大于1,则返回fn(y - 1) * t + fn(y - 1),在返回的结果中存在fn函数,代表着fn函数会继续执行,直到传入的参数值变为1,满足y==1的条件,递归结束,如图
祝学习愉快!
老师,能不能把fn(3)和fn(4)具体结果写出来下,递归这里函数的嵌套以及执行的顺序完全糊涂了
这里有一个问题:return fn(y-1) * t + fn(y-1);不理解fn(y-1)的值为什么是10000,执行的顺序是什么,然道回到if进行在一次判断么?我也说不清楚了,就是return里的语句执行的顺序是参照什么来决定的。if和return里的执行顺序是什么样子的,每次执行完return语句,是不是还需要返回到if语句进行再一次判断,然后继续在执行return里的
同学你好,这个递归函数的本质其实就是将函数一层层拆解,直到y==1满足条件,返回10000。然后将所有拆解的结果相加到一起。
以fn(4)为例,拆解过程如下:
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
入行前端,是明智的选择!市场需求大,就业前景好,入行门槛低,小白易上手 全新升级:技术更新,Vue3.0/TypeScript/React17.x; 技术更全面,从0基础到全栈开发再到大型项目构建
157 1
75 1
31 2
201 5
155 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星