递归----Python
2024-08-25 13:40:38
#递归不仅仅是学习python中会遇到的一些问题,在学习每一个语言的过程中都会遇到递归。使用递归可以让复杂的循环变得简单。
递归:程序调用自身的行为
1、写一个数的阶乘
#递归
def factor(n):
if n==1 or n==2:
return n
else:
return n*factor(n-1)
print(factor(4)) 24 #循环
sum=1
n = int(input('请输入一个数:'))
for i in range(1,n+1):
sum *=i
print(sum) 24
2、斐波那契数列问题(也称作兔子繁殖问题,一列数从第三项开始,每一项的值都是前面两项的和,求第n项的值为多少)
#循环
def recur(n):
a1 = 1
a2 = 1
if n<=2:
return -1
while n-2>0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a2
print(recur(12)) 144 #递归
def recur(n):
if n==1 or n==2:
return 1
else:
return recur(n-1)+recur(n-2)
print(recur(12)) 144
最新文章
- 用类(function(){})()实现点击显示index索引值的详解
- oracle[insert 时报错: 单行子查询返回多行]
- [javaSE] 反射-Class类的使用
- 【特别推荐】几款极好的 JavaScript 下拉列表插件
- sublime 3 3083验证码
- 修改Calendar(梅花雨)日历控件 兼容IE9 谷歌 火狐
- asdasd
- javascript 阻止事件冒泡和阻止默认事件对比
- java定义和实现接口
- HDU - 1588 Gauss Fibonacci (矩阵高速幂+二分求等比数列和)
- 整理一些提高C#编程性能的技巧
- scrapy选择器主要用法
- 在SSL / https下托管SignalR
- C#中使用JavaScriptSerializer类实现序列化与反序列化
- [Android] Android 使用Greendao gradle 出现 Error:Unable to find method &#39;org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)
- Confluence 6 安装一个语言组件
- Rails6.0 Beta版本1: Action Text的简单使用
- 113. Path Sum II 输出每个具体路径
- invariant theory 不变量理论
- 【系列教程1】Gradle入门系列一:简介