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

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


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

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

A B A^B
0 0 0
1 0 0
0 1 0
1 1 1

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

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

คำอธิบาย

a1 a2 a1^a2
2 5 0
2 1 0
2 8 0
2 9 0
5 1 1
5 8 0
5 9 1
1 8 0
1 9 1
8 9 8

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

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

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

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

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

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

  • ตั้งค่าการนับเป็นจำนวน * (นับ - 1) / 2

  • สร้างตัวแปรชั่วคราวเพื่อเก็บจำนวนคู่ทั้งหมดที่เกิดขึ้นและตั้งค่าเป็น (ขนาด * (ขนาด - 1) / 2)

  • เก็บเลขคี่เป็นการลบนับจากจำนวนคู่ทั้งหมดที่เกิดขึ้น

  • ส่งคืนค่าคี่

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

ตัวอย่าง

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

ผลลัพธ์

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

Count of pairs with Bitwise-AND as even number are: 7