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

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21

 

 

public static void 第一题() {              
int a = 1;                        //第一位为1,不参与计算,设第二位的1为int a,
int b = a + 1;                      //设第三位为int b,即a+1
int c = a + b;                      //后面的数即为前面两位数的和,则设c为a+b
for (; c < 1000; ) {                  //给数列设定范围,开始循环
c = a + b;                      //c的值为a+b
System.out.println(c);               //输出c的值
a = b;                        //输出c的值之后给a和b重新赋值
b = c;                        //a和b的值重新确定后重新参与循环计算
}
}

数组:
public static void 第1题() {
    int[] arr = new int[input.nextInt()];                //设变量数组键入
    arr[0] = 1;                            //初始第一个月的兔子数为1
    arr[1] = 1;                            //初始第二个月的兔子数为1
    for (int i = 2; i < arr.length; i++) {            //设置从第三个月开始的兔子数为i,i小于数组长度,i递增       
        arr[i] = arr[i - 1] + arr[i - 2];            //根据条件,i的值为前两个i值的和,构成循环体
    }
    for (int i = 0; i < arr.length; i++) {            //遍历数组,从下标为0开始(不加此循环,用上个for循环加前两个值输出也可以)
        System.out.println("arr[" + i + "] = " + arr[i]);    //输出语句
    }
}
输出:

8
arr[0] = 1
arr[1] = 1
arr[2] = 2
arr[3] = 3
arr[4] = 5
arr[5] = 8
arr[6] = 13
arr[7] = 21