JAVA中递归的概念

JAVA中递归的概念


说简单点就是方法调用自身方法。给你个例子:
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。


public class MonkeyPeach {
//利用递归的方法来求第一天的桃子数,输入参数为天数和当天的桃子数,输出为第一天桃子数
public static int getPeach_Num(int day, int peach_num) {
if (day == 1){
return peach_num;
}else if(day < 1 || peach_num < 0){
return 0;
}else{
return getPeach_Num(day - 1, (peach_num + 1) * 2);
}
}
public static void main(String[] args) {
System.out.println("第一天的桃子数:"+getPeach_Num(10, 1));
}
}


一道数列的规律题(使用递归解决)

/*
* 1,1,2,3,5,8,13,21,....
* 求解第30位数是多少
* */
public class demo1 {
    public static int compute(int n){
        if(n==1||n==2){
            return 1;
        }else{
            return compute(n-1)+compute(n-2);
        }
    }
    //测试
    public static void main(String[] args){
        System.out.print(compute(30));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值