Top*_*hef 3 c++ python recursion
想知道是否有人能指出我一个好的递归教程.当我在第一学期的数据结构课程中学到它时,我有点生疏了.想要了解我的递归...任何帮助?
Isa*_*aac 11
考虑一下.
更严重的是......
递归是一种解决具有明确定义的基本情况的问题的方法(或者情况,btu我在这里保持简单.)
例如,通常引用的因子问题是一个很好的问题.
factorial有什么作用?我们来看一些例子:
factorial(0) = 1
factorial(1) = 1
factorial(2) = 2
factorial(3) = 6
factorial(4) = 24
Run Code Online (Sandbox Code Playgroud)
一个数的阶乘是数字乘以之前它附带的数的阶乘,除非(现在,这是基础案例)的数目为0的0的阶乘是1(不能采取阶乘负数;只有正整数.)
所以我们有明确定义的基本情况.而我们知道如何处理是不是我们的基本情况做数字(我们乘他们的时间一个数量小于它的阶乘).我们已经准备好写我们的功能.
def factorial(x):
if x == 0: # this is our base case
return 1 # and this is what we do when we see it
else: # this is what we do with all other numbers
return x * factorial(x-1)
Run Code Online (Sandbox Code Playgroud)
那么你
在函数中正式表达(当它很简单时!)看起来像
function:
if base case:
this
else:
something + function(something closer to the base case)
Run Code Online (Sandbox Code Playgroud)如果你想要更先进的东西,谷歌有很多信息.