大佬们可否教小白我分析一下这个为什么输出的是8?

jjzzggkk 2022-06-07 00:59:25

<script>

  function f(n){
       return  n<= 2 ? 1 : f(n-1) + f(n - 2)      
  }
  console.log(f(6))

</script>

...全文
68 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

f(n) return的是一个三目运算,条件满足输出1,条件不满足输出f(n-1)+f(n-2)(调用自身)
所以f(6) 因为6<=2不成立,所以输出f(5) + f(4),继续调用自身
( f(4)+f(3) ) + ( f(3)+f(2) ),因为这当中f(2)和f(1)都满足小于2的条件,所以f(2)==f(1)==1,其余部分继续调用自身
中间过程省略
最后
f(2)+f(1)+f(2)+f(2)+f(1)+f(2)+f(1)+f(2),等于8

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧