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
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP