123
返回列表 发新帖
楼主: lpgo
收起左侧

[讨论] 关于这段简单的JAVA程序中的几个疑问

[复制链接]
田纳西
发表于 2011-4-8 00:31:25 | 显示全部楼层
回复 18楼 lpgo 的帖子

你还没理解,return 1的确只是返回了1,但这个结果被多次反复的调用累加,客观上起到循环的效果,并不是所有的递归都能简单的用一个循环表示。只是因为这个程序比较简单罢了。

递归程序的优点在于代码比一般的非递归程序少,但如果函数调用过多会增加程序的时间消耗。

用一定的数据结构可以把递归程序转化为非递归的,但那需要手工维护栈,那就比较复杂了。
gxrsprite
头像被屏蔽
发表于 2011-4-8 08:00:41 | 显示全部楼层
本帖最后由 gxrsprite 于 2011-4-8 08:00 编辑

这是求的斐波那契数列第n个是多少吧,第n个又等于 第(n-1)个+第(n-2)个,递归直到第一个和第二个都是已知的结束,其实这个用递归效率不高。。。
递归就是要在一定条件下调用原函数,想好你递归的是什么东西,考虑一个函数内的情况能否通用就行,比如你这个递归代3进去工作效果如何,代40进去就交给39和38了,  以及递归的结束条件就好了,递归终归要结束的,这里是最终到1和2是已知的不会继续调用原函数即可结束。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-3-28 23:06 , Processed in 0.093373 second(s), 15 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表