
正文
python递归函数小题 python递归的经典案例
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Python 递归函数基例
所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解。
例如:斐波那契数列递归,f(n)
=
f(n-1)
+
f(n-2),基例是1和2,f(1)和f(2)结果都是1
再比如:汉诺塔递归,基例就是1个盘子的情况,只需移动一次,无需递归
递归必须有基例,否则就是无法退出的递归,不能求解。
相关问答
Q1: python设计递归函数,求两个数的最大公约数
def common_data(a, b, sub_common):
if sub_common == 1:
return sub_common
else:
k1 = a % sub_common
k2 = b % sub_common
if k1 == k2 == 0:
return sub_common
else:
sub_common = sub_common - 1
return common_data(a, b, sub_common)
上面就是定义python递归函数小题了一个递归函数求最大公约数
如
a = 16
b = 12
c = common_data(16,12,12) # 前两个参数就是需要求最大公约数的两个数python递归函数小题,第三个参数就是那两个数中较小的那个数python递归函数小题, 返回值就是最大公约数
Q2: python递归函数
def Sum(m): #函数返回两个值python递归函数小题:递归次数python递归函数小题,所求的值 if m==1:return 1,m return 1+Sum(m-1)[0],m+Sum(m-1)[1]cishu=Sum(10)[0] print cishu def Sum(m,n=1): ... if m==1:return n,m ... return n,m+Sum(m-1,n+1)[1] print Sum(10)[0] 10 print Sum(5)[0] 5
Q3: Python算法-爬楼梯与递归函数
可以看出来的是,该题可以用斐波那契数列解决。
楼梯一共有n层,每次只能走1层或者2层,而要走到最终的n层。不是从n-1或者就是n-2来的。
F(1) = 1
F(2) = 2
F(n) = F(n-1) + F(n-2) (n=3)
这是递归写法,但是会导致栈溢出。在计算机中,函数的调用是通过栈进行实现的,如果递归调用的次数过多,就会导致栈溢出。
针对这种情况就要使用方法二,改成非递归函数。
将递归进行改写,实现循环就不会导致栈溢出
python递归函数小题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python递归的经典案例、python递归函数小题的信息别忘了在本站进行查找喔。







