# Even-odd turn game with two integers

Given three positive integers X, Y and P. Here P denotes the number of turns. Whenever the turn is odd X is multiplied by 2 and in every even turn Y is multiplied by 2. The task is to find the value of max(X, Y) ÷ min(X, Y) after the complete P turns.

Examples :

```Input : X = 1, Y = 2, P = 1
Output : 1
As turn is odd, X is multiplied by
2 and becomes 2. Now, X is 2 and Y is also 2.
Therefore, 2 ÷ 2 is 1.

Input : X = 3, Y = 7, p = 2
Output : 2
Here we have 2 turns. In the 1st turn which is odd
X is multiplied by 2. And the values are 6 and 7.
In the next turn which is even Y is multiplied by 2.
Now the final values are 6 and 14. Therefore, 14 ÷ 6 is 2.
```

## Recommended: Please solve it on PRACTICE first, before moving on to the solution.

Lets play the above game for 8 turns :

```| i    | 0 | 1  | 2  | 3  | 4  | 5  | 6  | 7   | 8   |
|------|---|----|----|----|----|----|----|-----|-----|
| X(i) | X | 2X | 2X | 4X | 4X | 8X | 8X | 16X | 16X |
| Y(i) | Y | Y  | 2Y | 2Y | 4Y | 4Y | 8Y | 8Y  | 16Y |
```

Here we can easily spot a pattern :

```if i is even, then X(i) = z * X and Y(i) = z * Y.
if i is odd, then X(i) = 2*z * X and Y(i) = z * Y.
```

Here z is actually the power of 2. So, we can simply say –

```If P is even output will be max(X, Y) ÷ min(X, Y)
else output will be max(2*X, Y) ÷ min(2*X, Y).```

Below is the implementation :

## C++

```// CPP program to find max(X, Y) / min(X, Y)
// after P turns
#include <bits/stdc++.h>
using namespace std;

int findValue(int X, int Y, int P)
{
if (P % 2 == 0)
return (max(X, Y) / min(X, Y));
else
return (max(2 * X, Y) / min(2 * X, Y));
}

// Driver code
int main()
{
// 1st test case
int X = 1, Y = 2, P = 1;
cout << findValue(X, Y, P) << endl;

// 2nd test case
X = 3, Y = 7, P = 2;
cout << findValue(X, Y, P) << endl;
}
```

## Python3

```# Python3 code to find max(X, Y) / min(X, Y)
# after P turns

def findValue( X , Y , P ):
if P % 2 == 0:
return int(max(X, Y) / min(X, Y))
else:
return int(max(2 * X, Y) / min(2 * X, Y))

# Driver code
# 1st test case
X = 1
Y = 2
P = 1
print(findValue(X, Y, P))

# 2nd test case
X = 3
Y = 7
P = 2
print((findValue(X, Y, P)))

# This code is contribted by "Sharad_Bhardwaj".
```

Output:

```1
2
```

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
2 Average Difficulty : 2/5.0
Based on 2 vote(s)