Check if two numbers are equal without using comparison operators
The following are not allowed to use
- Comparison Operators
- String function
Examples:
Input : num1 = 1233, num2 =1233
Output : Same
Input : num1 = 223, num2 = 233
Output : Not Same
Method 1: The idea is to use the XOR operator. XOR of two numbers is 0 if the numbers are the same, otherwise non-zero.
C++
#include <iostream>
using namespace std;
void areSame( int a, int b)
{
if (a^b)
cout << "Not Same" ;
else
cout << "Same" ;
}
int main()
{
areSame(10, 20);
}
|
Java
class GFG
{
static void areSame( int a, int b)
{
if ( (a ^ b) != 0 )
System.out.println( "Not Same" );
else
System.out.println( "Same" );
}
public static void main(String args[])
{
areSame( 10 , 20 );
}
}
|
Python3
def areSame(a, b):
if (a ^ b):
print ( "Not Same" )
else :
print ( "Same" )
areSame( 10 , 20 )
|
C#
using System;
class GFG
{
static void areSame( int a, int b)
{
if ( (a ^ b) != 0 )
Console.Write( "Not Same" );
else
Console.Write( "Same" );
}
public static void Main()
{
areSame(10, 20);
}
}
|
PHP
Javascript
<script>
function areSame(a, b)
{
if (a^b)
document.write( "Not Same" );
else
document.write( "Same" );
}
areSame(10, 20);
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Method 2: We can subtract the numbers. The same numbers yield 0. If the answer is not 0, the numbers are not the same.
C++
#include <bits/stdc++.h>
using namespace std;
void areSame( int a, int b)
{
if (!(a - b))
cout << "Same" ;
else
cout << "Not Same" ;
}
int main()
{
areSame(10, 20);
return 0;
}
|
Java
class GFG{
static void areSame( int a, int b)
{
if ((a - b) == 0 )
System.out.println( "Same" );
else
System.out.println( "Not Same" );
}
public static void main(String args[])
{
areSame( 10 , 20 );
}
}
|
Python3
def areSame(a, b):
if ( not (a - b)):
print ( "Same" )
else :
print ( "Not Same" )
areSame( 10 , 20 )
|
C#
using System;
class GFG
{
static void areSame( int a, int b)
{
if ((a - b) == 0)
Console.Write( "Same" );
else
Console.Write( "Not Same" );
}
public static void Main()
{
areSame(10, 20);
}
}
|
PHP
<?php
function areSame( $a , $b )
{
if (!( $a - $b ))
echo "Same" ;
else
echo "Not Same" ;
}
areSame(10, 20);
?>
|
Javascript
<script>
function areSame(a , b)
{
if ((a - b) == 0)
document.write( "Same" );
else
document.write( "Not Same" );
}
areSame(10, 20);
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Method 3: The bitwise AND of one number and the complement of the other number is zero if they are the same, and non-zero if they are not the same.
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
void areSame( int a, int b)
{
if (a & (~b))
cout << "Not Same" << endl;
else
cout << "Same" << endl;
}
int main()
{
areSame(10, 20);
}
|
Java
import java.io.*;
class GFG {
static void areSame( int a, int b)
{
if ((a & (~b)) != 0 )
System.out.println( "Not Same" );
else
System.out.println( "Same" );
}
public static void main (String[] args) {
areSame( 10 , 20 );
}
}
|
Python3
def areSame(a, b):
if (a & ~b):
print ( "Not Same" )
else :
print ( "Same" )
areSame( 10 , 10 )
areSame( 10 , 20 )
|
C#
using System;
class GFG
{
static void areSame( int a, int b)
{
if (Convert.ToBoolean(a & (~b)))
Console.WriteLine( "Not Same" );
else
Console.WriteLine( "Same" );
}
public static void Main( string [] args)
{
areSame(10, 20);
}
}
|
Javascript
function areSame(a, b)
{
if (a & (~b))
console.log( "Not Same" );
else
console.log( "Same" );
}
areSame(10, 20);
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
19 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...