# Maximum of four numbers without using conditional or bitwise operator

Given four numbers, print the maximum of the 4 entered numbers without using conditional or bitwise operator (not even ternary operators).

Examples:

Input : 4 8 6 5 Output : 8 Input : 11 17 8 17 Output : 17

We use the fact that value of “(x – y + abs(x – y))” will be 0 of x is less than or equal to y. We use this value as index in an array of size 2 to pick maximum. Once we have found maximum of two elements, we can use same technique for finding maximum of all.

`// CPP program to find maximum of 4 numbers ` `// without using conditional and bitwise ` `// operators. ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `int` `maxOfFour(` `int` `w, ` `int` `x, ` `int` `y, ` `int` `z) ` `{ ` ` ` `int` `a[2]; ` ` ` `a[0] = w, a[1] = x; ` ` ` ` ` `// b is 0 if w is less than or equal ` ` ` `// to x, else it is non-zero. ` ` ` `bool` `b = (a[0] - a[1] + ` `abs` `(a[0] - a[1])); ` ` ` ` ` `// After below operation, a[0] is maximum ` ` ` `// of w and x. ` ` ` `swap(a[0], a[!b]); ` ` ` ` ` `// After below three steps, a[0] is maximum ` ` ` `// of w, x and y. ` ` ` `a[1] = y; ` ` ` `b = (a[0] - a[1] + ` `abs` `(a[0] - a[1])); ` ` ` `swap(a[0], a[!b]); ` ` ` ` ` `// After below three steps, a[0] is maximum ` ` ` `// of w, x, y and z. ` ` ` `a[1] = z; ` ` ` `b = (a[0] - a[1] + ` `abs` `(a[0] - a[1])); ` ` ` `swap(a[0], a[!b]); ` ` ` ` ` `return` `a[0]; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `w = 12, x = 15, y = 18, z = 17; ` ` ` `cout << ` `"Maximum of four : "` ` ` `<< maxOfFour(w, x, y, z); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

Output:

Maximum of four : 18

This article is contributed by **Arkajyoti Banerjee**. 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.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

## Recommended Posts:

- Implementing ternary operator without any conditional statement
- Why overriding both the global new operator and the class-specific operator is not ambiguous?
- Largest in array without using conditionals / bitwise / ternary operators
- Find maximum in an array without using Relational Operators
- Android | App to Add Two Numbers
- How will you print numbers from 1 to 100 without using loop? | Set-2
- How will you print numbers from 1 to 100 without using loop?
- Why are negative numbers stored as 2's complement?
- Fill 8 numbers in grid with given conditions
- New Algorithm to Generate Prime Numbers from 1 to Nth Number
- Find if a molecule can be formed from 3 atoms using their valence numbers
- Why Data Structures and Algorithms are "Must Have" for Developers and Where to learn them : Answered
- Learn Data Structures and Algorithms for your Dream Job with this online Course
- OpenMP | Hello World program