一、符合运用递归的条件:
- 能够将大问题进行分解为各个类似的小问题
- 各个小问题的解法类同与大问题
- 有问题终止的条件
二、递归代码的写法:
- 先推导出数学公式
- 找到终止条件
- 基于此写代码
三、递归代码注意事项:
-
警惕堆栈溢出:
因为不停的函数调用,建立方法栈,若无终止条件,或者超出栈内存,则会溢出
解决方案:
1)确立的正确终止条件
2)限制递归调用的深度,即建立调用深度计数器。 -
递归中函数值的重复计算:
如:f(4) 可能会被重复计算好几次
解决方案:
用散列表存储函数的值,在每次计算之前查询。 -
递归代码的调试方法:
因为对于规模较大,层次较深的递归代码,如果仅仅单步调试会非常麻烦困难。
解决方案:
1)日志输出每个阶段的值
2)结合条件断点进行调试
标签:递归,解决方案,代码,条件,终止,调试 来源: https://blog.csdn.net/quanzywy/article/details/104106355
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。