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

นับตัวเลขที่ผลรวมด้วย x เท่ากับ XOR โดยที่ x ใน C++


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

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

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

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

ผลผลิต − การนับจำนวนที่รวมด้วย X ==XOR กับ X:2

คำอธิบาย - ตัวเลขเป็น 0 และ 1 เท่านั้น

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

ผลผลิต − การนับจำนวนที่รวมด้วย X ==XOR กับ X:8

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

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

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

  • ฟังก์ชัน sumisXOR(int x) รับ x และส่งกลับจำนวนตัวเลขที่ผลรวมของ x เท่ากับ xor กับ x

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

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

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

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

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

ตัวอย่าง

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

ผลลัพธ์

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

Count of numbers whose sum with X == XOR with X: 1