递归:1.引用自身(自己调用自己)
2.最小可能性问题:有基本的返回值
经典实例:
1.n的阶乘
n*(n-1)*(n-2)*1
#使用普通函数的方法 def fac1(n): result=n for i in range(1,n): result*=i return(result) #使用递归的方法 def fac2(n): if n==1: return 1 else: return n*fac2(n-1) n = int(input("请输入要计算阶乘的数字:")) print("计算结果为:", fac1(n)) print("计算结果为:",fac2(n))
2.n的m次幂
def power(n,m): if m==0: return (n) else: return(n*power(n,m-1)) n=int(input("请输入需要计算幂指数的数值:")) m=int(input("请输入需要计算的次数:")) print("计算结果为:",power(n,m))
3.二分查找
list_num=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,33] print("查找的数据范围为:",list_num) x=int(input("请输入要查找的数据:")) n = len(list_num) // 2 def count(x,n,list_num): if x==list_num[n]: return (n+1) elif x>list_num[n]: n=n+1 return (count(x,n,list_num)) else: n=n-1 return count(x,n,list_num) print("查找的数据为第:",(count(x,n,list_num)))