IO流(递归)

递归:方法定义中调用方法本身的现象(自己调自己)

public void show(int n){
	if(n <= 0){
		System.exit(0);
	}
	System.out.println(n);
	show(--n);
}

注意3个事项: A:递归一定要有出口,否则就是死递归 B:递归的次数不能太多,否则就会内存溢出 C:构造方法不能递归使用

举例: 从前有座山,山里有座庙,庙里有个老和尚对小和尚说...... 庙挂了,或者山崩了

注意和方法的嵌套调用区别:

Math.max(Math.max(a,b),c);

需求:请用代码实现求5的阶乘

下面的知识要知道: 5! = 12345 5! = 5*4!

有2种方案实现: A:循环实现 B:递归实现 a:做递归要写一个方法 b:出口条件 c:规律

//循环实现

int jc = 1;
for(int x=2;x<=5;x++){
	jc *= x;
}
System.jout.println("5的阶乘是:"+jc);

递归解决问题的思想

分解法、合并法

代码实现:

package com.linbin.time.se;

/**
 * @author linbin
 * @create 2019-05-11 18:11
 */
public class Digui {

    public static void main(String[] args) {
        System.out.println("5的阶乘是:"+jieCheng(5));
    }
    /**
     * 做递归要写一个方法:
     *      返回值类型:int
     *      参数列表:int n
     * 出口条件:
     *      if(n==1)   {return 1};
     * 规律:
     *      if(n!=1)    {return n*方法名(n-1);}
     *      方法名(n)   -->n的阶乘
     *      方法名(n-1)  -->n-1的阶乘
     */

    public static int jieCheng(int n){
        if(n==1){
            return 1;
        }else{
            return n*jieCheng(n-1);
        }
    }
}

转载于:https://my.oschina.net/u/4131327/blog/3048407

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值