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

นับจำนวนที่ XOR กับ N เท่ากับ OR กับ N ใน C++


เราคือตัวเลข N เป้าหมายคือการหาตัวเลขระหว่าง 0 ถึง N ซึ่ง OR กับ N เท่ากับ XOR กับ N

เราจะทำสิ่งนี้โดยข้ามหมายเลข จาก i=0 ถึง i<=N และสำหรับแต่ละ i ถ้า (N^i==i | N) ให้นับเพิ่มขึ้น

ให้เราเข้าใจด้วยตัวอย่าง

ป้อนข้อมูล − X=6

ผลผลิต − การนับจำนวนที่มี OR กับ N ==XOR กับ N:2

คำอธิบาย - ตัวเลขคือ 0 1.

ป้อนข้อมูล − X=20

ผลผลิต − การนับจำนวนที่มี OR กับ N ==XOR กับ N:8

คำอธิบาย − ตัวเลขคือ 0 1 2 3 8 9 10 11

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

  • เราหาจำนวนเต็ม N.

  • ฟังก์ชัน orisXOR(int n) รับ n และส่งกลับจำนวนตัวเลขที่มี OR ที่มีค่า n เท่ากับ XOR ที่มี n

  • นับเริ่มต้นเป็น 0

  • ข้ามจาก i=0 ไปยัง i<=n.

  • ถ้า i|n==i^n จำนวนที่เพิ่มขึ้น

  • เมื่อสิ้นสุด for loop count จะได้ผลลัพธ์ที่ต้องการ

  • นับคืนและพิมพ์

ตัวอย่าง

#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int orisXOR(int n){
   int count = 0;
   for (int i = 0; i <= n; i++){
      if((n|i)==(i^n))
         { count++; }
   }
   return count;
}
int main(){
   int N = 15;
   int nums=orisXOR(N);
   cout <<endl<<"Count of numbers whose OR with N == XOR with N: "<<nums;
   return 0;
}

ผลลัพธ์

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

Count of numbers whose OR with N == XOR with N: 1