10、统计每个月兔子的总数
有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。 例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。 一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少? 数据范围:输入满足 1<=n<=31
输入描述:
输入一个int型整数表示第n个月
输出描述:
输出对应的兔子总数
1、思路
跟斐波那契数列一样,前两个月兔子数量都为1,从第三月开始兔子得数量=前两个月数量之和,递归和迭代都可以。
2、具体实现
Java实现 递归:
public static int number(int n) {
if (n <= 2) {
return 1;
} else {
return number(n - 1) + number(n - 2);
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(number(n));
}
迭代:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int num1 = 1, num2 = 1, num = 0;
if (n <= 2)
num = 1;
else {
for (int i = 3; i <= n; i++) {
num = num1 + num2;
num1 = num2;
num2 = num;
}
}
System.out.println(num);
}
结果: