Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อค้นหาจำนวนที่รวม XOR กับอาร์เรย์ที่ให้ไว้เป็นตัวเลขที่ให้ไว้ k


ในการแก้ปัญหาที่กำหนดให้ เราต้องค้นหาตัวเลขที่ผลรวม 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 และภาษาอื่นๆ เราหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์