附耳聆听的gravatar头像
附耳聆听 2017-01-03 11:11:30

JAVA递归算法demo实例

 * 有一对兔子,从出生后第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,下一次是以前的a+b

code:

package cn.io.com;

public class DiGui {

    public static void main(String[] str) {
        /*int[] arr=new int[20];
        arr[0]=1;
        arr[1]=1;
        arr[2]=arr[0]+arr[1];
        
        for (int x=2;x<arr.length;x++) {
            arr[x]=arr[x-2]+arr[x-1];
        }
        //System.err.println(arr[19]);
        int a=1;
        int b=1;
        for(int x=0;x<18;x++){
            int temp=a;
            a=b;
            b=temp+a;
        }
        System.err.println(b);*/
        System.out.println(fib(20));
    }

    private static int fib(int n) {
        if(n ==1 || n ==2){
            return 1;
        }else {
            return fib(n-1)+fib(n-2);
        }
        
    }
    
}

 

 

结果:6765!!!!!!

文件名:DiGui.java,文件大小:0.557K 下载
最代码最近下载分享源代码列表最近下载
kingmysoft 2月21日
暂无贡献等级
fanyiqiang 2月20日
最代码贡献等级说明
AException 2月9日
暂无贡献等级
zxb072411 1月11日
暂无贡献等级
zxjzxj1 1月11日
暂无贡献等级
小马驹512 1月7日
暂无贡献等级
最代码最近浏览分享源代码列表最近浏览
792436 3月24日
暂无贡献等级
fangandyuan 3月22日
暂无贡献等级
why1017 3月20日
暂无贡献等级
BlaSou 3月20日
暂无贡献等级
lvhaowen 3月20日
最代码贡献等级说明
zdm_gj_tj 3月15日
暂无贡献等级
wwwzzzjjj 3月15日
最代码贡献等级说明
995731244 3月10日
暂无贡献等级
long663636 3月9日
暂无贡献等级
lovest317 3月8日
最代码贡献等级说明
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友