一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,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 



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值