递归算法
阶乘
n!=nn-1n-2*…1
def fac(n):"""求某数的阶乘值:param n:某数:return:阶乘"""# 递归的结束:if n == 1:return 1return n * fac(n - 1)# fac(5)# print(fac(5))
斐波那契数
1 1 2 3 5 8…
def fibona(n):"""求斐波那契数:param n:第几个:return:第几个斐波那契数"""if n == 1 or n == 2:return 1# 求前一个和前前一个的斐波那契数值return fibona(n - 1) + fibona(n - 2)# print(fibona(10))# 获取递归的限定层级# import sys# # print(sys.getrecursionlimit())# sys.setrecursionlimit(999999)
计算不死兔问题
def half_year_rabbit(half_years: int):# 直接给答案if half_years == 0:return 0, 0, 1# 计算前半年的兔子数a, b, c = half_year_rabbit(half_years - 1)# 计算当前半年的兔子数a, b, c = a + b, c, areturn a, b, cprint(half_year_rabbit(200))