在一行上输入一个整数
代表查询的月份。
在一行上输出一个整数,代表第
个月的兔子总数。
3
2
第一个月时,只有初始兔子(记为
),此时兔子总数为
。
第二个月时,依旧只有
,此时兔子总数为
。
第三个月时,
开始生兔子(记生出来的兔子为
),此时兔子总数为
。
第四个月时,
再生一只兔子,此时兔子总数为
。
第五个月时,
再生一只兔子,与此同时
也开始生兔子,此时兔子总数为
。
5
5
month = int(raw_input()) def rubbet(n): if n== 1&nbs***bsp;n == 2: return 1 return rubbet(n-1) + rubbet(n - 2) print(rubbet(month))
import sys # 递归 def rabbit(month): if month == 1 or month == 2: return 1 return rabbit(month-1) + rabbit(month-2) # 动态规划 def rabbit_dp(month): if month <= 2: return 1 lst = [0]*month lst[0] = 1 lst[1] = 1 for i in range(2, month): lst[i] = lst[i-1] + lst[i-2] return lst[-1] for line in sys.stdin: try: month = int(line) # print(rabbit(month)) print(rabbit_dp(month)) except: pass
import sys def func(num): n1 = 1 n2 = 1 tmp = 1 for i in range(3, num+1): tmp = n2 n2 = n1 + n2 n1 = tmp return n2 for line in sys.stdin: print(func(int(line)))
def f(n:int): if n ==1&nbs***bsp;n==2: return 1 return f(n-1)+f(n-2) while True: try: month = input() print(f(int(month))) except: break
while True: try: month = int(input()) rabbit = [0] # [索引表示兔子,值表示年龄] for i in range(month): for j in rabbit: if j > 1: rabbit.append(0) rabbit = list(map(lambda x: x + 1, rabbit)) sum = len(rabbit) print(sum) except EOFError: break数学语文都不好的我流下了不学无术的泪水,最差通过应该是我了。这个当做留恋一下😂,然后赶紧学习一下兔子数列。
while True: try: month=int(input()) n=month-1 def func(n): if n<2:#基线条件 return 1 else:#递归条件 return func(n-1)+func(n-2) print(func(n)) except: break2、循环列表
import sys for s in sys.stdin:#s=input()读入数据的1行 month=int(s) L=[] for i in range(month): if i<2:#前两个月都为1 total=1 L.append(total) else: total=L[i-1]+L[i-2]#之后均为前两个数的和 L.append(total) print(L[-1])#最后的列表L=[1, 1, 2, 3, 5, 8, 13, 21, 34]
while True: try: n = int(input()) if not n: break if n < 3: print(1) else: pre_had,can_birth = 1,1 for i in range(3, n+1): new_had = pre_had + can_birth new_can_birth = pre_had pre_had = new_had can_birth = new_can_birth print(pre_had) except: break
while True: try: a = int(input()) new_born = [0]*a new_born[0] = 1 for i in range(a): new_born[i+2 : a] = [x+ new_born[i] for x in new_born[i+2 : a]] print(sum(new_born)) except: break按照月份来叠加计算新生兔子, 根据每个月存在的兔子, 计算出未来月份新生的兔子