《斐波那契数列算法》————题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

【分析】
月份: 1        2        3            4            5        6        7         8...
对数: 1        1        2            3            5        8         13          21...
                            1+1         1+2        2+3   3+5
       


【代码】 

版本一】直接在main方法中写

class Test01 {
	public static void main(String[] args) {
		int num1 = 1,num2 = 1;
		int month = 8;//定义结束的月份
		int num;
		for(int i=1;i<=month;i++){
			if(i<=2){
				System.out.println("第"+i+"个月的兔子总对数是:1对");
			}else{
				//先把第month-1个月的对数赋值给中间变量num1,此时的num1已不用
				num = num2;
				//第month个月的总对数=month-1个月的总对数+month-2个月的总对数
				num2 = num1+num2;
				//再把第本次的mont-1个月的对数赋值给下一次循环的第month-2个月的对数
				num1 = num;
				System.out.println("第"+i+"个月的兔子总对数是:"+num2+"对");
			}
		}
	}
}

版本二】定义并调用方法

class Test01 {
	public static void main(String[] args) {
		int month = 24;
		for(int i=1;i<=month;i++){
			//调用方法
			int num = clacRabbitNum(i);
			System.out.println("第"+i+"个月的兔子总对数是:"+num+"对");
		}
	}
	//定义方法
	public static int clacRabbitNum(int month){
		if(month==1||month==2){
			return 1;
		}else{
			return clacRabbitNum(month-1)+clacRabbitNum(month-2);
		}
	}
}

输出结果】

发布了156 篇原创文章 · 获赞 14 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览