#递归不仅仅是学习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

最新文章

  1. 用类(function(){})()实现点击显示index索引值的详解
  2. oracle[insert 时报错: 单行子查询返回多行]
  3. [javaSE] 反射-Class类的使用
  4. 【特别推荐】几款极好的 JavaScript 下拉列表插件
  5. sublime 3 3083验证码
  6. 修改Calendar(梅花雨)日历控件 兼容IE9 谷歌 火狐
  7. asdasd
  8. javascript 阻止事件冒泡和阻止默认事件对比
  9. java定义和实现接口
  10. HDU - 1588 Gauss Fibonacci (矩阵高速幂+二分求等比数列和)
  11. 整理一些提高C#编程性能的技巧
  12. scrapy选择器主要用法
  13. 在SSL / https下托管SignalR
  14. C#中使用JavaScriptSerializer类实现序列化与反序列化
  15. [Android] Android 使用Greendao gradle 出现 Error:Unable to find method &#39;org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)
  16. Confluence 6 安装一个语言组件
  17. Rails6.0 Beta版本1: Action Text的简单使用
  18. 113. Path Sum II 输出每个具体路径
  19. invariant theory 不变量理论
  20. 【系列教程1】Gradle入门系列一:简介

热门文章

  1. Unity自定义定时器,模拟协程,脱离MonoBehavior控制
  2. CentOS7.X中使用yum安装nginx的方法
  3. Kotlin 枚举类
  4. LeetCode--029--两数相除(java)
  5. CSS设计模式
  6. yum安装的mysql5.7默认密码
  7. ubuntu nginx ssl 证书配置
  8. PHP类的反射和依赖注入
  9. [cf contest246] E - Blood Cousins Return
  10. PDF 补丁丁 0.6.0.3355 版发布(修复阅读模式、书签缩放的问题)