递归程序是指在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的程序。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。满足使用递归的条件:
子问题为同类事物,且更简单
必须有个出口
优点:
代码简洁
符合思维习惯,容易理解
缺点:
效率较低
递归层次太深,耗内存且容易栈溢出一定要使用的话,最好使用缓存避免相同的计算,限制递归调用的次数
def power(x, y):
if(y):
print("y="+str(y))
return x*power(x,y-1)
else:
print("y="+str(y)+",y为false已退出")
return 1
print("结果为",power(2,2))
"""
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
递归,就是在运行的过程中调用自己。
构成递归需具备的条件:
1. 子问题须与原始问题为同样的事,且更为简单;
2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。
函数解释
一开始传入两个参数时 假设传入2和2 power(2,2)
进入到power函数中那么这里面的x=2,y=2
如果y为true就是y>0的时候
就返回 x*power(x,y-1)中
在这个返回值又调用一次power(x,y)
此时就是2*power(2,1)
这个时候y依旧为true,y>0
在这个返回值又调用一次power(x,y)
此时return 2*power(2,0)
这个时候y为零就为false,返回了个1回去
这时候我们return 2*power(2,0)就相当于return 2*1
然后上面的return 2*power(2,1)这里的power函数的返回值就是上面返回来的2,那么这里就是return 2*2
最后再返回给power(2,2)中
得到结果为4
"""
运行结果:
y=2
y=1
y=0,y为false已退出
结果为 4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)