赞
踩
在普通递归中,我们先调用递归函数,待函数返回并从中获得部分结果后再往下处理。在这种情况下,程序的最终结果要在所有函数调用均逐一返回后才能得到。而在尾递归中,当前的这次调用先计算出程序的部分结果,在下一次递归调用时将该结果作为参数传递,那么到了最后一次调用,程序的最终结果就能得到。
如果把递归调用看作一条链,普通递归是链头通过逐次调用自身到达链尾,又由链尾开始逐层计算部分并向上返回,最终从链头获取最终结果。而尾递归则由链头开始逐层计算部分结果,并向下传递,在链尾获得最终结果。
比如要计算sum(1+2+3),这是一个典型的可以使用递归解决的问题。
使用普通形式的递归,sum函数定义为Integer sum (bound),Integer是返回值数据类型,参数bound是界限。
伪代码:
Integer sum (bound)
if bound == 0
return 0;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。