//对于斐波那契数列,即是经典“生兔子“问题”的本质。都采用递归调用的方法。这是题目的小知识点。
import java.util.*
;
//题目中要求输入数小于39
public class Solution {
public int Fibonacci(int n) {
if(n==0)
{
return 0;
}else if(n==1)
{ return 1;
}else
{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
public static void main(String[] args)
{
Scanner sc =new Scanner(System.in);
int i = sc.nextInt();
if(i>39)
{
System.out.println("越界");
}
else{
//同时注意静态方法不能调用非静态方法时,可以用对象进行调用
Solution ss =new Solution();
System.out.println(ss.Fibonacci(i));
}
//兔子问题
/*古典问题:有一对兔子,从出生后第
* 3个月起每个月都生一对兔子,小兔子
* 长到第三个月后每个月又生一对兔子,
* 假如兔子都不死,问每个月的兔子对数为多少? */
public class Rubbits{
public static void main(String[] args){
int n = 10;
System.out.println("第"+n+"个月兔子总数为"+fun(n));
}
private static int fun(int n){
if(n==1 || n==2)
return 1;
else
return fun(n-1)+fun(n-2);
}
}