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

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

假设有n个球。这些球以1、2、3、4……n这样的方式有序排列。现在这些球被反转,或以n、n-1、n-2、……、2、1的方式排序。之后这些球再次被反转为从位置1到n的顺序,或现在的顺序变为n、1、2、…..、n-1。这个反转过程重复n次,每次开始的位置向右移动1个位置。现在我们必须找出在反转之后最初在位置“index”的球的位置。

因此,如果输入的是球 = 5,index = 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个位置。

解决这个问题,我们将遵循以下步骤-

  • 如果索引小于 (球数 / 2) 的下限值,则
    • 返回2 *索引+1
  • 否则,
    • 返回2 *(球 – 索引 – 1)

范例

让我们看下面的实施以更好地理解。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程