java经典题丨有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总对数为多少?

兔子问题,习题练习:

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月份之后了。

人生格言:不要指望事情会更容易,只能指望自己更强大

猜你喜欢

转载自blog.csdn.net/qq_42960881/article/details/82751751
今日推荐