黑马程序员技术交流社区

标题: 一个题目有点不明白 .... [打印本页]

作者: 伍艳雄    时间: 2013-12-27 16:21
标题: 一个题目有点不明白 ....
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.         for (int i = 1; i <= 20; i++)
  6.                 {
  7.             System.out.println(f(i));
  8.         }
  9.     }
  10.         public static int f(int x)
  11.         {
  12.             if(x==1 || x==2)
  13.                 {
  14.                 return 1;
  15.             }
  16.                 else
  17.                 {
  18.                 
  19.                 return f(x-1)+f(x-2);//这里f(x-1)+f(x-2)这是怎么算的,.
  20.      }
  21.         }

  22. }
复制代码

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?




作者: 75100313    时间: 2013-12-27 16:26
本帖最后由 75100313 于 2013-12-27 16:36 编辑

  1. public static int f(int x) {
  2.                 if (x == 1 || x == 2) {//第一个月和第二个月都不生  直接返回
  3.                         return 1;
  4.                 } else {
  5.                         //这里是第三个月开始 生的兔子  第三个月等于第1和第2个月之和
  6.                         //第四个月 等于第3个月和第2个月的和
  7.                         //以此类推
  8.                         return f(x - 1) + f(x - 2);  
  9.                 }
  10.         }
  11.       
复制代码
解释 过程都写了  希望能帮助你理解
排版不好拍啊


月份 小兔子对数 中兔子对数   老兔子对数 兔子总对数
1 1 0 0 1
2 0 1 0 1
3 1 0 1 2
4 1 1 1 3
5 2 1 2 5
6 3 2 3 8
7 5 3 5 13


作者: hurryup    时间: 2013-12-27 16:34
112358这是典型的斐波拉契数列啊
作者: 伍艳雄    时间: 2013-12-27 17:10
75100313 发表于 2013-12-27 16:26
解释 过程都写了  希望能帮助你理解排版不好拍啊

感谢.........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2