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'的球在反轉後的位置。

例如,如果輸入為balls = 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。

為了解決這個問題,我們將遵循以下步驟:

  • 如果 index < floor(balls / 2),則
    • 返回 2 * index + 1
  • 否則,
    • 返回 2 *(balls - index - 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

更新於:2021年10月23日

瀏覽量:193

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.