# Program to find out the position of a ball after n reversals in Python

PythonServer Side ProgrammingProgramming

#### Beyond Basic Programming - Intermediate Python

Most Popular

36 Lectures 3 hours

#### Practical Machine Learning using Python

Best Seller

91 Lectures 23.5 hours

#### Practical Data Science using Python

22 Lectures 6 hours

Suppose, there are n number of balls. The balls are ordered in a fashion 1,2,3,4,...,n. Now the balls are reversed in order, or ordered in a way n, n-1, n-2, ......, 2, 1. The balls are again reversed in order, this time they are reversed from position 1 to n, or now the order becomes n, 1, 2,....., n-1. This reversing process is repeated n times and each time the starting position is moved 1 place to the right. We now have to find out the position of a ball initially in position 'index' after the reversals.

So, if the input is like balls = 5, index = 2, then the output will be 4 The balls initially are: 1, 2, 3, 4, 5

Then,

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

The ball in position 2 is currently at position 4.

To solve this, we will follow these steps −

• if index < floor value of (balls / 2), then
• return 2 * index + 1
• otherwise,
• return 2 *(balls - index - 1)

## Example

Let us see the following implementation to get better understanding −

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

print(solve(5, 2))

## Input

5, 2

## Output

4
Updated on 23-Oct-2021 08:12:19