首页 > 学院 > 开发设计 > 正文

IO流_不死神兔问题案例

2019-11-11 02:58:34
字体:
来源:转载
供稿:网友
package cn.itcast_02;/* * 有一对兔子,从出生后第3个月起每个月生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,问第二十个月的兔子对数是多少? * 分析:我们要想办法找规律 * 			兔子对数 * 第一个月:	1 * 第二个月:	1 * 第三个月:	2 * 第四个月:	3 * 第五个月:	5 * 第六个月:	8 * ... *  * 由此可见兔子的对象数据是: * 		1,1,2,3,5,8... * 规则: * 		A:从第三项开始,每一项是前两项之程 * 		B:而且说明前两项是已知的 * 如和实现这个程序呢? * 		A:数组实现 * 		B:变量的变化实现 * 		C:递归实现 *  * 假如相邻的两个月的兔子对数是a,b * 第一个相邻的数据:a=1,b=1 * 第二个相邻的数据:a=1,b=2 * 第三个相邻的数据:a=2,b=3 * 第四个相邻的数据:a=3,b=5 * 看到了:下一次的a是以前的b,下一次的b是以前的a+b; */public class DiGuiDemo2 {	public static void main(String[] args) {		// 定义一个数组对象		long[] num = new long[20];		num[0] = 1;		num[1] = 1;		// num[2] = 2;		// num[3] = 3;		// ...;		for (int x = 2; x < 20; x++) {			num[x] = num[x - 1] + num[x - 2];		}		System.out.PRintln(num[19]);		System.out.println("-------------");		int a = 1;		int b = 1;		for (int x = 0; x < 18; x++) {			int temp = a;			a = b;			b = temp + b;		}		System.out.println(b);		System.out.println("-------------");				System.out.println(fib(20));	}	/*	 * 方法:	 * 		返回值类型:int	 * 		参数列表:int n	 * 出口条件:	 * 		第一个月是1,第二个月是1	 * 规律:	 * 		从第三个月开始,每个月是前两个月之和	 * 			 */	public static int fib(int n) {		if (n == 1 || n == 2) {			return 1;		} else {			return fib(n - 2) + fib(n - 1);		}	}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表