Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 N과의 XOR이 N과의 OR과 같은 숫자를 셉니다.

<시간/>

우리는 숫자 N입니다. 목표는 N과의 OR이 N과의 XOR과 같은 0과 N 사이의 숫자를 찾는 것입니다.

우리는 아니오를 횡단하여 이것을 할 것입니다. i=0에서 i<=N까지 그리고 각 i에 대해 (N^i==i | N)이면 카운트를 증가시킵니다.

예를 들어 이해합시다.

입력 - X=6

출력 − N과의 OR ==N과의 XOR인 숫자의 개수:2

설명 − 숫자는 0 1입니다.

입력 - X=20

출력 − N과의 OR ==N과의 XOR:8

인 숫자의 개수

설명 − 숫자는 0 1 2 3 8 9 10 11입니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 정수 N을 취합니다.

  • 함수 orisXOR(int n)은 n을 취하고 n과의 OR이 n과의 XOR과 같은 숫자의 개수를 반환합니다.

  • 초기 카운트를 0으로 합니다.

  • i=0에서 i<=n.

    으로 트래버스
  • i|n==i^n인 경우. 증분 수

  • for 루프 카운트가 끝나면 원하는 결과를 얻을 수 있습니다.

  • 카운트를 반환하고 인쇄하십시오.

예시

#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