通过对对于月份兔子数量的分析 我们可以发现从第三个月开始 兔子数量为前两个月的和
用数学方法来表示的话An=A(n-1)+A(n-2)
因此 通过明确的数学表达式 我们不难想到使用递归来解决该方法
public static int rabbitNum(int month) { if (month == 1 || month == 2) //递归出口 { return 1; } return rabbitNum(month - 1) + rabbitNum(month - 2); }
另外 使用for循环也能实现:
public static int rabbitNum(int month) { int num1 = 0; int num2 = 0; int rabbitNum = 0; for (int i = 1; i <= month; i++) { if (i == 1) { num1 = 1; rabbitNum = 1; } else if (i == 2) { num2 = 1; rabbitNum = 1; } else { rabbitNum = num1 + num2; num1 = num2; num2 = rabbitNum; } } return rabbitNum; }