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

A25746. 编程实现:小明和同学们玩跳房子的游戏,现给出一排房子,请计算出小明最少需要跳几次就可以完成游戏,完成游戏时哪只脚落地?(0代表左脚,1代表右脚)游戏规则1:地上画有n个正方形依次排开代表房子,每个房子里标有数字,数字代表最多可以跳几个房子,数字不能为0(如:数字为2,可以直接向前跳1个房子,也可以直接向前跳2个房子)。例如:地上画有5个正方形代表房子,房子里面的数字分别为2,1,4,2,1。小明…

填空题 中等

题目描述

编程实现:

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

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

例如:

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

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

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

例如:

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

输入描述:

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

输出描述:

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

样例输入:

2,1,4,2,1

样例输出:

2,0

参考答案

#参考答案1 l = input().split(",") for i in range(0,len(l)): l[i] = int(l[i]) n = 0 max1 = 0 t = True count = 0 for i in range(10): for j in range(n+1,n+l[n]+1): if j >= (len(l)-1): t = False break elif j+l[j] > max1: max1 = j n = max1 count+= 1 if t == False: break print(count, end=",") print(count%2) #参考答案2 array = [int(item) for item in input().split(",")] def jump(position,array): if position + 1 >= len(array): return [0,0] minvalue = [9999999999999999999,0] for index in range(position + 1,position + array[position] + 1): answer = jump(index,array) if answer[0] < minvalue[0]: minvalue = answer minvalue[0] += 1 minvalue[1] = 1 - minvalue[1] #return [count,side] return minvalue print("%d,%d"%tuple(jump(0,array)))

答案解析

评分标准:

7分:能正确输出一组数据;

7分:能正确输出两组数据;

7分:能正确输出三组数据;

7分:能正确输出四组数据;

7分:能正确输出五组数据。

上一题 下一题