黑马程序员技术交流社区

标题: 基础题1 [打印本页]

作者: 唱一些温暖    时间: 2015-12-27 16:17
标题: 基础题1
本帖最后由 唱一些温暖 于 2015-12-27 16:18 编辑
  1. package Prog_50;
  2. /*
  3. * 题目:
  4. * 有一对兔子,从出生后第3个月起每个月都生一对兔子,
  5. * 小兔子长到第三个月后每个月又生一对兔子,
  6. * 假如兔子都不死,问每个月的兔子对数为多少?
  7. *
  8. * 规律:
  9. * 第几个月:         1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  10. * 兔子的对数:         1, 1, 2, 3, 5, 8,13,21,33, 55, 89,144,233,377,
  11. *
  12. */
  13. public class Prog1 {
  14.   public static void main(String[] args){
  15.     int x=5;
  16.     //方法1
  17.     System.out.println("第"+x+"个月兔子的对数:"+y(x));
  18.     //方法2
  19.     yy(5);
  20.   }
  21.   /*
  22.   * y1, y2, y3, y4, y5,        y(x)
  23.   * 1, 1,y1+y2,y2+y3,y3+y4,y(x-2)+y(x-1),
  24.   * 
  25.   * 当月份小于或等于2时,兔子的对数为1。
  26.   * 设x表示月份,y(x)表示当月数量,即为(x-2)上上个月,(x-1)上个月
  27.   * y(x-2)+y(x-1)就是x个月的数量。
  28.   * 即y(x)=y(x-2)+y(x-1);且x<=2时,y(x)=1,
  29.   *
  30.   */
  31.   static int y(int x){
  32.     if(x<=2){
  33.       return 1;
  34.     }
  35.     return y(x-2)+y(x-1);
  36.   }
  37.   static void yy(int xx){
  38.     int y1=1;
  39.     int y2=1;
  40.     for(int x=1;x<=xx;x++){
  41.       System.out.println("第"+x+"个月兔子的对数:"+y1);
  42.       y2=y1+y2;
  43.       y1=y2-y1;
  44.     }
  45.   }
  46. }
复制代码






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