在 Python 中找出 n 次反转后球的位置的程序

假设有n个球。球以 1,2,3,4,...,n 的方式排列。现在球按顺序颠倒,或以 n, n-1, n-2, ......, 2, 1 的方式排列。 球再次按顺序颠倒,这次它们从位置 1 颠倒到 n,或者现在顺序变成 n, 1, 2,....., n-1。这个反转过程重复 n 次,每次起始位置向右移动 1 个位置。我们现在必须找出反转后球最初在“索引”位置的位置。

所以,如果输入像球 = 5,索引 = 2,那么输出将是 4 球最初是:1, 2, 3, 4, 5

然后,

5,4,3,2,1
5,1,2,3,4
5,1,4,3,2
5,1,4,2,3

位置 2 的球当前位于位置 4。

示例

让我们看看以下实现以获得更好的理解 -

def solve(balls, index):
   if index < balls // 2:
      return 2 * index + 1
   else:
      return 2 * (balls - index - 1)

print(solve(5, 2))

输入

5, 2
输出结果
4

猜你喜欢