兔子问题,习题练习:
public class Rubbit {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入月份");
int n = sc.nextInt();
System.out.println("在"+n+"月份有"+fun(n)+"对兔子");
}
private static int fun(int n) {
if (n == 1 || n == 2) // 表示第1月,第2月的对数
return 1;
else
return fun(n - 1) + fun(n - 2); // 3月之后该怎么算
}
}
兔子问题,最开始犯了一个巨大的错误,一直在推到它的公式,既然不是个数学家,对它的公式进行利用就可以了;一直总是在纠结电脑会怎么知道F(n)=F(n-1)+F(n-2),也就是F(n-1)表示的是n的前一个月的兔子对数,F(n-2)表示的是n的前两个月的兔子对数;
所以最后要做的就是如何将代码写出来,最终的是判断1、2月份,之后就是3月份之后了。
人生格言:不要指望事情会更容易,只能指望自己更强大