1.递归函数
• 在写递归函数时要有一个明确的结束条件;
• 在递归时,问题规模要越来越小;
• 递归函数效率不高,函数调用是通过栈的数据结构实现的,
每调用依次,栈就会多一层,最多999层,否则会出现栈溢出。
####### 实例 #######
1)递归求阶乘
def fact(n):
if not isinstance(n, int):
print 'ERROR'
else:
if n == 1:
return 1
return fact(n-1)*n
print fact(5)
结果:120
2)实现二分的效果
def fun(n):
if not isinstance(n, int):
print 'ERROR'
else:
print n
b = int(n/2)
if b>0:
return fun(b)
fun(10)
结果:10
• 在写递归函数时要有一个明确的结束条件;
• 在递归时,问题规模要越来越小;
• 递归函数效率不高,函数调用是通过栈的数据结构实现的,
每调用依次,栈就会多一层,最多999层,否则会出现栈溢出。
####### 实例 #######
1)递归求阶乘
def fact(n):
if not isinstance(n, int):
print 'ERROR'
else:
if n == 1:
return 1
return fact(n-1)*n
print fact(5)
结果:120
2)实现二分的效果
def fun(n):
if not isinstance(n, int):
print 'ERROR'
else:
print n
b = int(n/2)
if b>0:
return fun(b)
fun(10)
结果:10