ในการแก้ปัญหาที่กำหนดให้ เราต้องค้นหาตัวเลขที่ผลรวม XOR ของอาร์เรย์ที่กำหนดด้วยตัวเลขนั้นเท่ากับ k เป็นต้น
Input: arr[] = {1, 2, 3, 4, 5}, k = 10
Output: 11
Explanation: 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 11 = 10
Input: arr[] = { 12, 23, 34, 56, 78 }, k = 6
Output: 73 ในโปรแกรมนี้ เราจะใช้คุณสมบัติของ xor ถ้า A^B =C และ A^C =B เราจะนำสิ่งนี้ไปใช้กับปัญหานี้
แนวทางในการหาแนวทางแก้ไข
ในแนวทางนี้ เราจะใช้คุณสมบัติข้างต้นของตัวดำเนินการ xor ในตอนนี้ สำหรับปัญหานี้ ตอนนี้เราสำรวจผ่านอาร์เรย์ แล้วถ้าเรา x หรือตัวเลขด้วย k นั่นแหละคือคำตอบของเรา
ตัวอย่าง
รหัส C++ สำหรับแนวทางข้างต้น
#include <bits/stdc++.h>
using namespace std;
int main(){
int arr[] = { 1, 2, 3, 4, 5 }; // given array
int n = sizeof(arr) / sizeof(int); // size of our array
int k = 10; // given k
int answer = 0;
for(int i = 0; i < n; i++) // traversing the array for
// xor sum
answer ^= arr[i];
answer ^= k; // XORing with k to get our answer
cout << answer << "\n"; // printing our answer
return 0;
} ผลลัพธ์
11
คำอธิบายสำหรับแนวทางข้างต้น
ในแนวทางนี้ เราจะใช้คุณสมบัติบางอย่างของตัวดำเนินการ xor เพื่อการนั้น เราก็แค่สำรวจผ่านอาร์เรย์ แล้วหาผลรวม xor ของอาร์เรย์ทั้งหมด จากนั้นเรา xor ผลรวม xor นั้นด้วย k และนั่น คำตอบแล้วเราก็พิมพ์คำตอบของเรา
บทสรุป
ในบทช่วยสอนนี้ เราจะแก้ปัญหาการค้นหา Number ที่ผลรวม XOR กับอาร์เรย์ที่ระบุเป็นตัวเลข k ที่กำหนด นอกจากนี้เรายังได้เรียนรู้โปรแกรม C++ สำหรับปัญหานี้และแนวทางที่สมบูรณ์ (ปกติ) ซึ่งเราแก้ไขปัญหานี้ เราสามารถเขียนโปรแกรมเดียวกันในภาษาอื่นๆ เช่น C, java, python และภาษาอื่นๆ เราหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์