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

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

解:  然我们看看 没个月兔子的总数量  1 1 2 3 5 8 13 21 34 。。。。。

 靠,这就是一个Fibonacci的问题

java 实现 :


public class TestNIO {
	public static void main(String[] args) {
		fibo(7);
	}
	/**
	 * :有一对兔子,从出生后第3个月起每个月都生一对兔子,
	 * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
	 *  0 1 1 2 3 5 8 13 21 ....
	 * @param month
	 */
	private static void fibo(int month) {
		// 从数据的裴烈规律可以看出 这是一个斐波那契数列的问题
		/// 定义数据 上个月的数量 上上个月的数量
		int pre = 1 ;
		int prepre = 1 ;
		/// 总数量
		int total ;
		if(month == 1){
			System.out.println("第一个月的数量 :"+1);
		}else if(month == 2){
			System.out.println("第一个月的数量 :"+1);
			System.out.println("第二个月的数量 : " + 1);
		}else if(month > 2){
			System.out.println("第1个月的数量 :"+1);
			System.out.println("第2个月的数量 : " + 1);
			for(int j = 3 ; j <= month ; j++ ){
				total = pre + prepre ;
				System.out.println("第" + j + "个月的总数量 :" + total);
				prepre = pre ;
				pre = total ;
			}
		}
	}
}
第1个月的数量 :1
第2个月的数量 : 1
第3个月的总数量 :2
第4个月的总数量 :3
第5个月的总数量 :5
第6个月的总数量 :8
第7个月的总数量 :13

在如上的算法中,可以使用递归进行实现,但考虑到递归对内存的占用太多,所以应该优先考虑使用循环进行实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值