欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-28 23:07:23
递归:调用方法的过程中再次调用自己 要明确递归结束的条件 示例: 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);
}