在 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