测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)

上一题 下一题