1 题目描述
一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛。 假设每次生的都是母牛,并且也遵守4年才生育并生母牛的原则。且所生的牛都不会死
问20年之后共有多少头牛
2 采用递归实现,代码如下
package arithmetic.cowNumber;
public class CowNumber {
/*
* years表示多少年后
*
* */
public static int getCowNumber(int years){
int total = 1; // 当前有一头牛
int temp = 0 ; // 临时变量
if(years > 0){
while(years!=0){
if(temp >= 2){ //当前为1岁 ,2年之后为4岁
total += getCowNumber(years-2); // 这里是一个递归, 2年后母牛生一头小牛,而小牛又像当初的母牛一样2年后生小牛,不断循环
}
temp++;
years--;
}
}
return total;
}
public static void main(String[] args) {
int total =0;
for(int i = 1 ; i <= 20; i++){
total = CowNumber.getCowNumber(i);
System.out.println("第 "+i+ "年后 : " + total +" ");
}
}
}
3 输出结果如下
第 1年后 : 1
第 2年后 : 1
第 3年后 : 2
第 4年后 : 3
第 5年后 : 4
第 6年后 : 5
第 7年后 : 7
第 8年后 : 10
第 9年后 : 14
第 10年后 : 19
第 11年后 : 26
第 12年后 : 36
第 13年后 : 50
第 14年后 : 69
第 15年后 : 95
第 16年后 : 131
第 17年后 : 181
第 18年后 : 250
第 19年后 : 345
第 20年后 : 476