Largest of two distinct numbers without using any conditional statements or operators

Given two positive and distinct numbers, the task is to find the greatest of two given numbers without using any conditional statements(if…) and operators(?: in C/C++/Java).

Examples:

Input: a = 14, b = 15
Output: 15

Input: a = 1233133, b = 124
Output: 1233133

The Approach is to return the value on the basis of the below expression:

a * (bool)(a / b) + b * (bool)(b / a)

The expression a / b will give 1 if a > b and 0 if a < b (only after typecasting the result to bool).
Hence, the answer will be of the form either a + 0 or 0 + b depending upon which one is greater.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for above implementation
#include <iostream>
using namespace std;
  
// Function to find the largest number
int largestNum(int a, int b)
{
    return a * (bool)(a / b) + b * (bool)(b / a);
}
  
// Drivers code
int main()
{
    int a = 22, b = 1231;
    cout << largestNum(a, b);
  
    return 0;
}

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program for above implementation
  
// Function to find the largest number
function largestNum($a, $b)
{
    return ($a * (boolean)floor(($a / $b))) + 
           ($b * (boolean)floor(($b / $a)));
}
  
// Drivers code
$a = 22; $b = 1231;
echo(largestNum($a, $b));
  
// This code is contributed
// by Mukul Singh

chevron_right


Output:

1231


My Personal Notes arrow_drop_up

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.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : Code_Mech