不死神兔
案例需求
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
分析
技巧:归纳推敲、总结规律,写代码实现。
归纳推敲:
月份: 0 1 2 3 4 5 6
对数: 1 1 2 3 5 8 13
总结规律:
从第三个月开始,每个月的对数都是前两个月的对数的和。
写代码实现:
1.定义一个数组存储20个月份的兔子对数。
2.为数组的第一个位置和第二个位置都赋值成1,从数组的第3个位置开始遍历。
3.为每个位置赋值成它的前两个元素的数据的总和: nums[i] = nums[i-1] + nums[i-2]
public class ExecDemo {
public static void main(String[] args) {
// 1.定义一个数组存储20个月份每个月的兔子对数
int[] nums = new int[20];//这个20表示的是数组的长度
// 2.为数组的第一个位置和第二个位置都赋值成1.
nums[0] = nums[1] = 1 ;
// 3. 从第三个元素开始为每个位置赋值成它的前两个元素的数据的总和。
for(int i = 2 ; i < nums.length ; i++ ){
// 当前元素的元素值赋值成 = 前两个位置的元素和。
nums[i] = nums[i-1] + nums[i-2];
}
// 4.输出第20个月的对数
System.out.println("第20个月的兔子数据是:"+nums[19]);
}
}