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

นับคู่กับ Bitwise XOR เป็นเลขคู่ใน C++


เราได้รับอาร์เรย์จำนวนเต็มและภารกิจคือการนับจำนวนคู่ทั้งหมดที่สามารถเกิดขึ้นได้โดยใช้ค่าอาร์เรย์ที่กำหนด ดังนั้นการดำเนินการ XOR บนคู่จะส่งผลให้คู่ ค่า.

ตารางความจริงสำหรับการดำเนินการ XOR แสดงไว้ด้านล่าง

A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0

ป้อนข้อมูล − int arr[] ={2, 8, 1, 5, 11}

ผลผลิต − จำนวนคู่ที่มี Bitwise XOR เป็นเลขคู่ − 4

คำอธิบาย

a1 a2 a1 XOR a2
2 8 10
2 1 3
2 5 7
2 11 9
8 1 9
8 5 13
8 11 3
1 5 4
1 11 10
5 11 14

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ป้อนอาร์เรย์ขององค์ประกอบจำนวนเต็มเพื่อสร้างคู่

  • คำนวณขนาดของอาร์เรย์ที่ส่งข้อมูลไปยังฟังก์ชันเพื่อการประมวลผลต่อไป

  • สร้างจำนวนตัวแปรชั่วคราวเพื่อเก็บคู่ที่เกิดขึ้นจากการดำเนินการ XOR เป็นค่าคู่

  • เริ่มการวนซ้ำ FOR จาก i ถึง 0 จนถึงขนาดของอาร์เรย์

  • ภายในลูป ให้ตรวจสอบ IF arr[i] % 2 ==FALSE จากนั้นให้เพิ่มจำนวนขึ้น 1

  • ตั้งอุณหภูมิเป็นขนาด * (ขนาด - 1)

  • ตั้งค่าตัวแปรชั่วคราวอื่นเป็นคู่ =temp / 2

  • ตอนนี้คำนวณคู่ค่าคี่ในอาร์เรย์เป็นจำนวน * (ขนาด - นับ)

  • ตอนนี้คำนวณคู่คู่เป็นคู่ทั้งหมด - คู่คี่

  • คืนคู่

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <iostream>
using namespace std;
//Count pairs with Bitwise XOR as EVEN number
int XOR_Even(int arr[], int size){
   int count = 0;
   for (int i = 0; i < size; i++){
      if (arr[i] % 2 != 0){
         count++;
      }
   }
   int temp = size * (size-1);
   int Pairs = temp / 2;
   int odd = count * (size - count);
   int even = Pairs - odd;
   return even;
}
int main(){
   int arr[] = { 2, 6, 1, 8};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs with Bitwise XOR as EVEN number are: "<<XOR_Even(arr, size);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Count of pairs with Bitwise XOR as EVEN number are: 3