题解 | #HJ37 统计每个月兔子的总数#
统计每个月兔子的总数
http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395
递推
while True:
try:
n = int(input())
total = []
sum1 = 1 # 一个月兔子个数
sum2 = 0 # 两个月兔子个数
sum3 = 0 # 三个月以及三个月以上兔子个数
total.append(sum1+sum2+sum3)
for _ in range(1, n):
sum3 += sum2 # 中兔子变大兔子
sum2 = sum1 # 中兔子变大兔子
sum1 = sum3 # 大兔子生小兔子
total.append(sum1+sum2+sum3)
print(total[-1])
except:
break
动态规划
while True:
try:
n = int(input())
total = [0] * n
for i in range(n):
if i < 2:
total[i] = 1
else:
total[i] = total[i-1] + total[i-2]
print(total[-1])
except:
break