我们提供安全,免费的手游软件下载!

PP下载站永久免费软件下载站

当前位置: 主页 > 手赚资讯 > 游戏攻略

蓝桥杯2021年PYTHON 真题,跳房子

来源:网络整理 更新时间:2024-09-03 00:03:20 点击:

小明和同学们玩跳房子的游戏,现给出一排房子,请计算出小明最少需要跳几次就可戏,完成游戏时哪只脚落地?(0代表左脚,1代表右脚)

游戏规则1:地上画有n个正方形依次排开代表房子,每个房子里标有数字,数字代表最多可以跳几个房子,数字不能为0(如:数字为2,可以直接向前跳1个房子,也可以直接向前跳2个房子)。

列如:

地上画有5个正方形代表房子,房子里面的数字分别为2,1,4,2,1。

小明在第一个房子是可以选择跳到第2个房子或者第3个房子,为了所跳次数最少选择跳到第3个房子(房子数字为4);房间数字为4,可以选择跳到第4个房子或者第5个房子,为了所跳次数最少选择跳到第5个房子。故至少需要跳两次就可以完成游戏。

游戏规则2:只能单脚落地,左脚起跳右脚落地,右脚起跳左脚落地;第一次起跳为左脚

列如:

小明一共跳两次,第一次左脚起跳,右脚落地;第二次右脚起跳,左脚落地;完成游戏时左脚落地

规则游戏跳房子教案_跳房子游戏规则_传统游戏跳房子游戏规则

输入描述

第一行输入n个正整数,正整数之间用英文逗号隔开

输出描述

输出两个整数,整数之间用英文逗号隔开;第一个整数表示最少跳的次数,第二个整数表示落地的脚(0代表左脚,1代表右脚)

看到这个题时,我们会觉得挺难的。其实仔细理解会发现它并不难,主要就是在考你递归的应用。下面是悦儿姐自己想的一种通俗易懂的解法,望大家采纳。

c=input().split(',') # 输入房子内的数字

b=[int(i) for i in c] # 将其转成列表,元素转成整数

i=0

k=0

def fz(a):

global i,k

if a[i]>=len(a)-i-1: # 递归终止条件

k+=1 # 累计次数

if k%2==0: # 判断左右脚

print(k,0)

else:

print(k,1)

else:

i+=a[i]

k+=1

fz(a) # 调用自身

fz(b)