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

นับจำนวนที่มีความแตกต่างกับ N เท่ากับ XOR โดยที่ N ใน C++


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

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

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

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

ผลผลิต − การนับจำนวนที่แตกต่างจาก N ==XOR กับ N:4

คำอธิบาย - ตัวเลขคือ 0 2 4 6

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

ผลผลิต − การนับจำนวนที่แตกต่างจาก N ==XOR กับ N:4

คำอธิบาย - ตัวเลขคือ 0 4 16 20

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

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

  • ฟังก์ชัน diffisXOR(int n) รับ n และส่งกลับจำนวนตัวเลขที่ผลต่างกับ 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 diffisXOR(int n){
   int count = 0;
   for (int i = 0; i <= x; i++){
      if((x-i)==(i^x))
         { count++; }
   }
   return count;
}
int main(){
   int N = 15;
   int nums=diffisXOR(N);
   cout <<endl<<"Count of numbers whose difference with N == XOR with N: "<<nums;
   return 0;
}

ผลลัพธ์

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

Count of numbers whose difference with N == XOR with N: 16