本帖最后由 jwx555 于 2014-7-10 22:05 编辑
总要重复一个行为的时候就可以想想递归。
现实中,下楼梯,人从上面开始一层一层台阶的重复下楼动作,直到到了一楼才停止。
有无限的楼梯么?没有!
所以用递归的时候特别要注意结束条件。
举个例子吧
从1加到100,我们初中就会,Java要怎么表现呢? 你要写“1+2+3+...+100” 把一百个数都打出来吗?
这样当然可笑。
- public class Test05 {
- public static void main(String args[]){
- System.out.println(sum(100)) ;
- }
-
- public static int sum(int a){
- if (a!=1){ //设置递归结束条件
- return a+sum(a-1) ; //把重复的加法动作化为递归!
- }
- return 1 ;
- }
- }
复制代码
这里用递归就可以很少量的代码完成功能,但是注意:数不能太大,递归会大量消耗内存,如果数字太大,递归量太多就会发生内存溢出错误!!
|