递归函数
一、递归概念 |
递归定义:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
递归特性:
- 必须有一个明确的结束条件
- 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
- 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以递归调用的次数过多,会导致栈溢出。)
二、递归运用 |
题目:把10不断除2,直到不能除为止,打印每次结果。
方法一:运用循环实现
n =10 while True: n = int(n/2) print(n) if n == 0 : break
方法二:运用函数改写
def divide_by_two(n): if n < 2: return n else: return divide_by_two(n / 2) # 调用函数 result = divide_by_two(10) print(result)