我正在编写一个程序来判断游戏是可解还是不可解。 游戏规则是:
- 你从最左边的位置开始
- 您可以在该位置按数组的值向左或向右跳,并且不能超出端点。例如:a={4,4,1,5,2,6,3,4,2,0} 你从最左边的位置开始,所以你可以跳到右边的 4 个位置到第 2 个位置(左边是不可能的)
我必须检查我们是否可以到达始终等于 0 的另一端。
如果我们能到达最右边(即 0)则它是可解的否则不可解
我试过在 Python 中使用递归,但不知道如何进行
def KAuhop(b,c,d,current_position):
position_move=b[current_position]
if b[current_position+position_move]==0:
print("found")
else:
KAuhop(b,current_position+position_move,d,current_position)
print("Not found")
a=[4,4,1,5,2,6,3,4,2,0]
print(KAuhop(a,0,len(a)-1,0))
最佳答案
如果它可以向左或向右跳转位置,那么请说明程序应该何时结束或退出,否则它将变成无限循环,从一个位置跳到另一个位置。
请使用递归函数找到以下仅正确跳转的解决方案。
lis=[4,4,1,5,2,4,3,4,2,0]
last_pos=len(lis)-1
pos = 0+lis[0]
def kauhop(lis,pos):
if (pos==last_pos):
print("found")
exit;
else:
new_pos = pos+lis[pos]
if(new_pos <= last_pos):
kauhop(lis,new_pos)
else:
print("Not found")
kauhop(lis,pos)
关于Python检查是否有可能通过左跳或右跳到达数组的最右端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47118379/