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++
// 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; } |
Java
// Java program for above implementation class GFG { // Function to find the largest number static int largestNum( int a, int b) { return a * ((a / b) > 0 ? 1 : 0 ) + b * ((b / a) > 0 ? 1 : 0 ); } // Drivers code public static void main(String[] args) { int a = 22 , b = 1231 ; System.out.print(largestNum(a, b)); } } // This code is contributed by 29AjayKumar |
Python3
# Function to find the largest number def largestNum(a, b): return a * ( bool )(a / / b) + \ b * ( bool )(b / / a); # Driver Code a = 22 ; b = 1231 ; print (largestNum(a, b)); # This code is contributed by Rajput-Ji |
C#
// C# program for above implementation using System; class GFG { // Function to find the largest number static int largestNum( int a, int b) { return a * ((a / b) > 0 ? 1 : 0) + b * ((b / a) > 0 ? 1 : 0); } // Driver code public static void Main(String[] args) { int a = 22, b = 1231; Console.Write(largestNum(a, b)); } } // This code is contributed by Rajput-Ji |
PHP
<?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 |
Javascript
<script> // Javascript program for above implementation // Function to find the largest number function largestNum(a , b) { return a * (parseInt(a / b) > 0 ? 1 : 0) + b * (parseInt(b / a) > 0 ? 1 : 0); } // Driver code var a = 22, b = 1231; document.write(largestNum(a, b)); // This code is contributed by shikhasingrajput </script> |
Output:
1231
Time complexity: O(1)
Auxiliary space: O(1)