题解 | #统计每个月兔子的总数#
统计每个月兔子的总数
https://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n = in.nextInt();
int[] dp = new int[n+1];
dp[1] = 1;dp[2]=1;
for (int i=3;i<=n;i++) {
dp [i] = dp[i-1]+dp[i-2];
}
System.out.print(dp[n]);
}
}
}
最简单的斐波那契数列。dp[i]由dp[i-1]和dp[i-2]来推到的。
dp[i]表示经过第i个月。兔子的总数量值。
动态规划解析:
从第三个月开始:
第三个月的兔子是由第一个月能下崽的所有兔子+前二个月所有能下崽的兔子得到的。
第四个月的兔子是由二个月所有可下崽的兔子+三个月的所有能下崽的兔子得到。(这里为啥不加上第一个月?因为第一个月的兔子下的崽在二个月和三月时候都算进去了)
