递归,就是在运行的过程中调用自己。
递归必须要有三个要素:
①、边界条件
②、递归前进段
③、递归返回段
当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
递归经典的题目求解: n的阶层问题的求解:def recursive_func(num): """ 计算num的阶层:num*(num-1)*(num-2).... :param num: 输入一个数字 :return:返回递归计算后的值 """ if num == 1: return 1 elif num <= 0: print("输入错误") else: return num * recursive_func(num-1)res = recursive_func(0)print(res)
怎么样不要用递归去实现。。
def recursive_func_1(num): """ 不采用递归的方式进行计算num的阶层 :param num: 一个数字 :return: 返回递归的计算后的值 """ res = 1 if num <= 0: print("输入错误") for i in range(1,num + 1): res *= i return resres = recursive_func_1(5) # 5 * 4 * 3 * 2 * 1print(res) # 120实现n个斐波那契数列
# 递归方式:def fibonacci_sequence(n): """ 实现n个斐波那契数列 :param n: 数字 :return: 返回斐波那契数 """ if n == 1: return 1 elif n == 2: return 1 else: return fibonacci_sequence(n-1) + fibonacci_sequence(n-2)ret = fibonacci_sequence(10)res = [fibonacci_sequence(i) for i in range(1,10)] # [1,1,2,3,5,8,13,21,34]print(res)# 不是递归的方法def fibonacci_sequence_1(n): """ 计算n个斐波那契数列: :param n: 数字 :return: 放回斐波那契数: """ res = [1,1] while n > 0: res.append(res[-1]+res[-2]) n -= 1 return resret = fibonacci_sequence_1(10)print(ret) # [1,34,55,89,144]总结
以上是内存溢出为你收集整理的python-递归函数全部内容,希望文章能够帮你解决python-递归函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)