黑色星球
风遇浪,海市蜃楼
 1 import java.util.ArrayList;
 2 
 3 public class Rabbit {
 4     /*
 5      * 【程序1】 題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
 6      * 问每个月的兔子总数为多少?
 7      */
 8     // ------------------------------------------------//
 9     /*
10      * 思路:第一个月1对;第二个月1对,第三个月2对,第四个月3对,第五个月5对,第六个月8对 第七个月13对
11      */
12     public static void main(String args[]) {
13         long arr[] = new long[36];
14         arr[0] = 1;
15         arr[1] = 1;
16         System.out.println("第1个月有兔子1对" + ", " + "总数是" + 2);
17         System.out.println("第2个月有兔子1对" + ", " + "总数是" + 2);
18         for (int i = 2; i < 36; i++) {
19             arr[i] = arr[i - 1] + arr[i - 2];
20             System.out.println("第" + (i + 1) + "个月有兔子" + arr[i] + "对" + ", "
21                     + "总数是" + arr[i] * 2);
22 
23         }

 以上是网上用数组的方法,自己刚学了集合,想试着用ArrayList的方法,以下是初步的代码,for循环里出了点问题,导致越界了

    ArrayList list=new ArrayList();
        list.add(1);
        list.add(1);
        for(int i=2;i<36;i++){
        i  j=(int) list.get(i-1)+(int)list.get(i-2);
        list.add(i j);
        
        System.out.println("第" + (i + 1) + "个月有兔子" + list.get(i) + "对" + ", "
                + "总数是");
        }
    
        修改后的
 1 import java.util.ArrayList;
 2 
 3 public class Rabbit {
 4     /*
 5      * 【程序1】 題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
 6      * 问每个月的兔子总数为多少?
 7      */
 8     // ------------------------------------------------//
 9     /*
10      * 思路:第一个月1对;第二个月1对,第三个月2对,第四个月3对,第五个月5对,第六个月8对 第七个月13对...
11      * 每一个数等于前面两个数的和
12      */
13     public static void main(String args[]) {
14         //数组的方法
15 //        long arr[] = new long[36];
16 //        arr[0] = 1;
17 //        arr[1] = 1;
18 //        System.out.println("第1个月有兔子1对" + ", " + "总数是" + 2);
19 //        System.out.println("第2个月有兔子1对" + ", " + "总数是" + 2);
20 //        for (int i = 2; i < 36; i++) {
21 //            arr[i] = arr[i - 1] + arr[i - 2];
22 //            System.out.println("第" + (i + 1) + "个月有兔子" + arr[i] + "对" + ", "
23 //                    + "总数是" + arr[i] * 2);
24 //        }
25         
26         //集合的方法
27         ArrayList list=new ArrayList();
28         list.add(1);
29         list.add(1);
30         System.out.println("第1个月有兔子1对" + ", " + "总数是" + 2);
31         System.out.println("第2个月有兔子1对" + ", " + "总数是" + 2);
32         for(int i=2;i<36;i++){
33             int j;
34         j=(int) list.get(i-1)+(int)list.get(i-2);//每一个数等于前面两个数字的和,这里得到集合的下一个值
35         list.add(j);//将上面的值赋给集合list
36         
37         System.out.println("第" + (i + 1) + "个月有兔子" + list.get(i) + "对" + ", "
38                 + "总数是");
39         }
40     
41         
42         
43         
44         
45         
46         
47         
48         
49         
50         
51         
52     }
53 }

 

 
posted on 2017-03-13 00:12  黑色星球  阅读(108)  评论(0编辑  收藏  举报