A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

12 个回复

倒序浏览
找规律,前两个月的和,是第三个月的值
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
Daveweil 发表于 2016-10-13 08:19
找规律,前两个月的和,是第三个月的值

不知道咋编程
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
煤男纸 发表于 2016-10-13 12:23
不知道咋编程

一种是数组的做法,一种是递归,反正都一样,你定义数组的长度为你要的长度,然后数组的0.1位置存1,第三个位置存arr【3】=arr【3-1】+arr【3-2】
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
wgc 中级黑马 2016-10-16 23:57:44
地板
好厉害的样子   大神们赶紧来
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报

老司机热衷分析,很棒
回复 使用道具 举报
本帖最后由 jinjinjin 于 2016-10-17 00:40 编辑

public class Test {
        public static void main(String[] args) {
                // fun(3)是第五个月的,以后依次类推  fun(4) 第六个月.......
                System.out.println(fun(2));
        }
        public static int fun(int i){
                if(i==1){
                        return 1;
                }else{
                        return i+fun(i)*(1/3);
                }
        }
}

可以看看,看这样写对不对
回复 使用道具 举报
yyl010 初级黑马 2016-10-17 08:56:57
9#
这是一个递归问题,主要在于分析
回复 使用道具 举报
回复 使用道具 举报
yyl010 初级黑马 2016-10-17 09:37:13
11#
      //建一个数组存储每个月兔子数
        int[] arr = new int [12];
                arr[0]=1; //第一个月兔子数
                arr[1]=1; //第二个月兔子数
                for (int i = 2; i < arr.length; i++) {
                        arr[i]=arr[i-1]+arr[i-2];  //前两个月兔子数之和是后一个月的兔子数
                }
                System.out.println(arr[arr.length-1]);
                }
回复 使用道具 举报
不死神兔(阶乘)
回复 使用道具 举报
不死神兔其实就是递归
如: 8=8!
     8=8*7*6*5*4*3*2*1
      = 8*7!
     ..........
代码如下:

   public class Text1 {
        public static void main(String [] args) {
        // 1  1  2  3  5  8   13  21
      int num = getNum(5);          //5的阶乘
      System.out.println(num);
     }
    public static int getNum(int num)  {
          if(num == 1  ||  num == 2) {
                return  1;
          }
}
}
  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马