0312兔子练习

 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 }
 
  

 

 

转载于:https://www.cnblogs.com/javatrain/p/6540494.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值