# -*- coding: utf-8 -*- #python 27 #xiaodeng #递归函数 #508 #定义: #在函数内部,可以调用其他函数,如果一个函数在内部调用其自身,这个函数就是递归函数 #递归 ''' (1)递归就是在过程或函数里调用自身【调用自身】 (2)在使用递归策略时,必须有一个明确的递归结束条件,称之为递归出口 递归算法要解决的3个问题: (1)数据的定义是按递归定义的 (2)问题解法按递归算法实现 (3)数据的结构形式是按递归定义的 ''' #案例1 def mysum(L): print L if not L: return 0 else: return L[0]+mysum(L[1:]) #调用 print mysum([1,2,3,4,5]) ''' [1, 2, 3, 4, 5] [2, 3, 4, 5] [3, 4, 5] [4, 5] [5] [] 15 ''' #案例2 def f(n): if n==1: return 1 return n*f(n-1) print f(3)#6 #递归特点 #定义简单、逻辑清晰,所有的递归函数都可以写成循环的方式。