• Java中的递归以及不死神兔实例(斐波那契数列)


    递归
    1、递归次数不要太多,太占内存
    2、递归一定要有出口
    3、构造方法不能递归使用
    三种方法实现实例:

    package test17_digui;
    
    import java.util.Scanner;
    
    /*
     * 题目:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子第三个月后也可以生一对兔子,
     * 		假如兔子不死,在指定月份时刻一共可以有多少对兔子
     * 
     * 分析:
     * 		第一个月:1
     * 		第二个月:1
     * 		第三个月:2
     * 		第四个月:3
     * 		第五个月:5
     * 		第六个月:8
     * 		。。。。。
     * 		
     * 		其实指定月份兔子的总数为此月之前两个月兔子总数之和。
     * 
     * 实现3种方法
     * 		1、数组实现
     * 		2、相邻变量实现
     * 		3、递归实现
     */
    public class DiGuiDemo {
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		System.out.println("请输入当前月份");
    		int m=sc.nextInt();
    		int n1=0;
    		int n2=0;
    		int n3=0;
    		sc.close();
    		
    		//数组实现
    		if(m<=2) {
    			n1=1;
    			
    		}else {
    			int []x=new int[m];
    			x[0]=1;
    			x[1]=1;
    			for(int i=2;i<m;i++ ) {
    				x[i]=x[i-1]+x[i-2];		
    			}	
    			n1=x[m-1];
    		}
    		System.out.println("方法一:数组实现");
    		System.out.println("	"+"第"+m+"月份共有"+n1+"对兔子");
    		System.out.println("--------------------------");
    		
    		
    		//相邻变量实现
    		if(m<=2) {
    			n2=1;
    			
    		}else {
    			int a=1;
    			int b=1;
    			int temp=0;
    			for(int i=0;i<m-2;i++) {
    				temp=a;
    				a=b;
    				b=temp+b;
    			}
    			n2=b;
    		}
    		System.out.println("方法二:相邻变量实现");
    		System.out.println("	"+"第"+m+"月份共有"+n2+"对兔子");
    		System.out.println("--------------------------");
    		
    		//递归实现
    		n3=digui(m);
    		System.out.println("方法三:递归实现");
    		System.out.println("	"+"第"+m+"月份共有"+n3+"对兔子");
    	}
    
    	private static int digui(int m) {
    		// TODO Auto-generated method stub
    		if(m<=2) {
    			return 1;
    		}else {
    			return digui(m-1)+digui(m-2);
    		}
    		
    	}
    
    }
    
    
    
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
    

    输出结果:
    在这里插入图片描述




    转载自:https://blog.csdn.net/zfliu96/article/details/83931876

  • 相关阅读:
    上传文件至服务器(图片)
    centos7语言更改
    centos7无法访问虚拟机web服务
    Java中四种访问权限总结
    线程和进程、程序、应用程序之间的关系
    kafka
    图文并茂理解iptables
    扩展模块
    根据子网掩码计算最大主机数
    iptables匹配条件总结1
  • 原文地址:https://www.cnblogs.com/k-class/p/13774017.html
Copyright © 2020-2023  润新知