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 }