1.什么是递归:递归比迭代高级;
在递归函数中调用自己,如下,会陷入死循环:
def recursion(): return recursion()小知识:python3的递归层深是100层,可以更改递归层深import syssys.setrecursionlimit(10000)
用非递归方式实现阶乘:
def factorail(n): result = n for i in range(1,n): result *= i return resultprint (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 s3print (fibonacci1(12))
3.汉诺塔
原文地址:https://www.cnblogs.com/zoeya/p/9438573.html
时间: 2024-09-30 16:37:07