مقارنة عددين صحيحن دون استخدام عوامل المقارنة
المطلوب في هذه المسألة هو عقد مقارنة بين عددين صحيحن دون استخدام أيٍّ من عوامل المقارنة.
خطوات الخوارمية
يمكن حلّ هذه المسألة بتطبيق العامل XOR
على العددين المعطيين، فإن كان الناتج صفرًا كان العددان متساويين، وإلا فإنّ العددين مختلفان.
تنفيذ الخوارزمية
- C++:
#include<bits/stdc++.h>
using namespace std;
bool EqualNumber(int A, int B)
{
return ( A ^ B ) ;
}
// اختبار الدالة السابقة
int main()
{
int A = 5 , B = 6;
cout << !EqualNumber(A, B) << endl;
return 0;
}
- بايثون:
def EqualNumber(A, B):
return ( A ^ B )
# اختبار الدالة السابقة
A = 5; B = 6
print(int(not(EqualNumber(A, B))))
- جافا:
import java.util.*;
class solution
{
static boolean EqualNumber(int A, int B)
{
if ((A^B) != 0)
return true;
else
return false;
}
// اختبار الدالة السابقة
public static void main(String args[])
{
int A = 5 , B = 6;
if(EqualNumber(A, B) == false)
System.out.println(1);
else
System.out.println(0);
}
}
مصادر
- صفحة Compare two integers without using any Comparison operator في توثيق الخوارزميات في موقع GeeksforGeeks.