java递归代码实现斐波那契数列,猴子吃桃等问题

递归:调用方法的过程中再次调用自己

要明确递归结束的条件

示例:

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);
}

你可能感兴趣的:(java递归代码实现斐波那契数列,猴子吃桃等问题)