def fibonacci(number)
if number < 2
number
else
fibonacci(number - 1) + fibonacci(number - 2)
end
end
先帮你修改一下代码风格:
def fibonacci(number)
return number if number < 2
fibonacci(number - 1) + fibonacci(number - 2)
end
另外感觉你应该是还没有掌握递归
这个概念?递归的算法都需要一个基本条件(basecase),程序一旦满足了基本条件,递归就会终结。理解了这个概念,流程图就很容易画了。
你的这个代码风格是使用 if modifier 和 return 做的,非常简洁漂亮,但是表示的算法还是和原来的代码一样,我画不出来😂
为什么不先搜索一下呢?
另外,这是「Guard Clause」,减少嵌套层次的一种重构方法,不是说把 if 写在同一行就简洁漂亮了...
return number if number < 2
谢谢,问题解决了。但感觉这个流程图并不适合在读代码的时候在脑子里想出来,然后按照流程图计算。反而用自然语言描述这个算法后比较容易计算. 感谢
谢谢。应该这问题对于各位的确太简单了 ,但我感觉想要相处画这张流程图的思路好难啊 我想看看用流程图描述这个算法,比用自然语言等方式描述更便于计算。