php有一个农场_农场里有一头小牛,一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,n年后有多少头小牛...

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值