解题思路:
while True + break解决多行输入问题,列表存储解决超时问题,my_list[ ]存储每一年的母牛数
注意事项:
当且仅当n>before_max(历史最大输入)时,才允许更新my_list[ ]和before_max
如果当前输入比之前的还小,就不必更新my_list[ ]而直接调用即可
举例:
第一次输入n = 7 my_list=[1,2,3,4,6,9,13] before_max=7
第二次输入n = 6 小于before_max,不必更新my_list,直接调用my_list[5]即可,
第三次输入n = 8 大于before_max,接着上一次更新my_list=[1,2,3,4,6,9,13,19] before_max=8
参考代码:
my_list = [1,2,3] #前三年母牛数 before_max = 3 #默认最大历史输入为3 while True: n = int(input()) if n == 0: break #如果输入0则退出运行,否则将不断循环 else: if n > before_max: #如果当前输入最大,则更新my_list,否则不更新 for i in range(before_max,n): #接着上次继续更新my_list my_list.append(my_list[i-1]+my_list[i-3]) before_max = n #在n>befora_max的前提下,更新before_max print(my_list[n-1]) #my_list[n-1]即为第n年的母牛数
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:590 |
1012题解浏览:938 |
简单的a+b (C语言代码)浏览:572 |
时间转换 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:653 |
找出最长的字符串来 (C语言代码)浏览:1840 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:581 |
哥德巴赫曾猜测 (C语言代码)浏览:778 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:539 |
P1002 (C++代码)浏览:794 |