java递归代码实现斐波那契数列,猴子吃桃等问题
程序员文章站
2024-01-26 09:36:52
递归:调用方法的过程中再次调用自己 要明确递归结束的条件 示例: 1.斐波那契数列(假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,没有发生死亡): public static int fibo(int n) { if (n == 1 || n == ......
递归:调用方法的过程中再次调用自己
要明确递归结束的条件
示例:
1.斐波那契数列(假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,没有发生死亡):
public static int fibo(int n) {
if (n == 1 || n == 2 ) {
return 1;
}
return fibo(n - 1) + fibo(n-2);
}
2.猴子吃桃问题(猴子吃桃子问题,猴子第一天摘下若干个桃子,当即吃了快一半,还不过瘾,又多吃了一个。第二天又将仅剩下的桃子吃掉了一半,又多吃了一个。以后每天都吃了前一天剩下的一半多一个。到第十天,只剩下一个桃子。试求第一天共摘了多少桃子?):
public static int gettaozi(int days) {
if (days == 1) {
return 1;
}
return (gettaozi(days - 1) + 1) * 2;
}
3.阶梯有几种走法(有n步台阶,一次只能上1步或2步,共有多少种走法?):
public static int gettotal(int n) {
if (n == 1 || n == 2) {
return n;
}
return gettotal(n - 2) + gettotal(n - 1);
}