JAVA之不死神兔

问题:有一对兔子,从出生后第3个月起每月都生一对兔子,小兔子长到第三个月后每月又生一对兔子,假如兔子都不死,每个月有多少对兔子,一年共有多少对兔子?

意大利的著名数学家斐波那契提出该问题,后人把各个月份兔子数量称为“斐波那契数列”。 

1月, 2月, 3月, 4月, 5月, 6月,  7月,    8月,  9月,10月,11月,12月…………

1对, 1对, 2对, 3对, 5对, 8对, 13对, 21对,34对,55对,89对,144对…………



代码实现

public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int []arr=new int[12];
		arr[0]=1;
		arr[1]=1;
		System.out.println("第"+1+"月有"+arr[0]+"对兔子");
		System.out.println("第"+2+"月有"+arr[1]+"对兔子");
		for(int i=2;i<arr.length;i++){
			arr[i]=arr[i-1]+arr[i-2];
			System.out.println("第"+(i+1)+"月有"+arr[i]+"对兔子");
		}
		int sum=0;
		for (int i = 0; i < arr.length; i++) {
			sum+=arr[i];
		}
		System.out.println("一年共有"+sum+"对兔子");
	}

运行结果如下:

第1月有1对兔子
第2月有1对兔子
第3月有2对兔子
第4月有3对兔子
第5月有5对兔子
第6月有8对兔子
第7月有13对兔子
第8月有21对兔子
第9月有34对兔子
第10月有55对兔子
第11月有89对兔子
第12月有144对兔子
一年共有376对兔子

不死神兔(递归版)求某一月有多少对兔子?

public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		 int[]arr=new int[10];
		  arr[0]=1;
		  arr[1]=1;
		  for (int i=2;i<arr.length;i++) {
			  arr[i]=arr[i-1]+arr[i-2];
		  }
		  System.out.println(f(7));//调用递归方法,求第7月
			}
	
		   public static int f(int n) {//递归方法
			   if(n==1||n==2) {
				   return 1;
			   }else {
				   return f(n-1)+f(n-2);
			   }
	}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值