A40756. 有一个游戏:有两个人,第一个人先从 1 和 2 中挑一个数字, 第二个人可以在对方的基础上选择加1或者加 2, 然后又轮到第一个人,他也可以选择加 1 或者加 2,之后再把选择权交给对方,就这样双方交替地选择加 1 或者加 2, 谁先加到 20, 谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以 1 或 2 为起点) 加到 20,有多少种不同的递加过程?比如1,4, 7, 10, 12, 15,…
填空题
较难
知识点
题目描述
有一个游戏:有两个人,第一个人先从 1 和 2 中挑一个数字, 第二个人可以在对方的基础上选择加1或者加 2, 然后又轮到第一个人,他也可以选择加 1 或者加 2,之后再把选择权交给对方,就这样双方交替地选择加 1 或者加 2, 谁先加到 20, 谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以 1 或 2 为起点) 加到 20,有多少种不同的递加过程?比如1,4, 7, 10, 12, 15, 18, 20 算一种; 2, 5, 8, 11,14,17,20又是一种。那么一共会有多少种这样的过程呢?我们可以用递归算法来解决这个问题,请补全代码。
def guo_cheng(n):
if _____①_____:
return 1
return _____②_____
# 输出所有过程的个数
print (guo_cheng( _____③_____ ) )
参考答案
def guo_cheng(n):
if n==1 or n==2:
return 1
return guo_cheng(n-1)+guo_cheng(n-2)
# 输出所有过程的个数
print (guo_cheng(20) )答案解析
评分标准:
(1)n==1 or n==2;(3分)
(2)guo_cheng(n-1) +guo_cheng(n-2) ; (4 分)
(3)20。(3 分)
上一题
下一题