码迷,mamicode.com
首页 > 编程语言 > 详细

python学习之函数(四)--递归

时间:2018-08-07 19:02:14      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:actor   return   函数   span   ora   小知识   int   mit   for   

1.什么是递归:递归比迭代高级;

 在递归函数中调用自己,如下,会陷入死循环:

  def recursion():
  return recursion()
小知识:python3的递归层深是100层,可以更改递归层深
import sys
sys.setrecursionlimit(10000)

   用非递归方式实现阶乘:

def factorail(n):
result = n
for i in range(1,n):
result *= i
return result
print (factorail(5))

结果:120

 用递归方式实现阶乘:

 #用递归求阶乘
def factorail1(n):
if n== 0:
  return 0
if n==1:
  return 1
else:
  return n * factorail1(n-1)
print (factorail1(6))

结果:720

 

2.fibonacci递归数列的实现:

 

#用递归方法实现
def fibonacci(n):
if n == 1:
return 1
if n == 2:
return 1
else:
return fibonacci(n-1)+fibonacci(n-2)
print (fibonacci(20))

 

  结果:6765

#---------------------

 

#用非递归方法实现
def fibonacci1(n):
s1=1
s2=1
s3=1
if n < 1:
print ("wrong input!")
return -1
else:
while (n-2) > 0:
s3 = s1+s2
s1 = s2
s2 = s3
n -=1
return s3
print (fibonacci1(12))

 

3.汉诺塔

 



 

python学习之函数(四)--递归

标签:actor   return   函数   span   ora   小知识   int   mit   for   

原文地址:https://www.cnblogs.com/zoeya/p/9438573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!