package com.liuhuan.test;
import java.util.Scanner;
/*
* 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,
* 假如兔子都不死,问每个月的兔子总数为多少?
*
* ****************************分析************************
* 其实这个题目就是“斐波纳契数列”;
* 问题描述:求解Fibonacci数列的第n个位置的值?(斐波纳契数列(Fibonacci Sequence),
* 又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,
* 斐波纳契数列以如下被以递归的方法定义:F1=1,F2=1,Fn=F(n-1)+F(n-2)(n>2,n∈N*))。
*/
public class fun01 {
/*
* 第一步:分析数据逻辑
* 1,1,1+1,2+1,3+2,5+3,8+5,13+8,21+13......
*/
public int fun(int mounth){ //求每个月的数量
if(mounth<=2) return 1;
else
return fun(mounth-1)+fun(mounth-2);
}
/*
* 递归算法是一种直接或者间接调用自身函数或者方法的算法。
*
*/
public static void main(String[] args) {
fun01 testfun=new fun01();
System.out.println("输入你要查询数量的月份");
Scanner input=new Scanner(System.in);
int m=input.nextInt();
System.out.println("数量为"+testfun.fun(m));
}
}