import sys
print(sys.getrecursionlimit()) #查询有多少层,默认为1000
sys.setrecursionlimit(1500) #设置为多少层
def recursion(n):
print(n)
recursion(n+1)
recursion(1) #输出为1-997的数值
递归的特性:
1.必须有一个明确的结束条件,要不就会变成死循环了
2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3.递归执行效率不高,递归层次过多会导致栈溢出
def calc(n):
v = int(n/2)
print(v)
if v == 0:
return "Done"
calc(v)
print(v)
calc(10) #输出结果 5,2,1,0,1,2,5
递归的作用:
求阶乘
任何大于1的自然数n阶乘表示方法:
n! = 1*2*3*...*n
或
n! = n * (n-1)!
举例:4! = 4*3*2*1 = 24
def factorial(n):
if n == 1:
return 1
return n * factorial(n-1)
print(factorial(4)) #24