우리는 숫자 N입니다. 목표는 N과의 차이가 N과의 XOR과 같은 0과 N 사이의 숫자를 찾는 것입니다.
우리는 아니오를 횡단하여 이것을 할 것입니다. i=0에서 i<=N까지 그리고 각 i에 대해 (N-X==i^N)이면 카운트를 증가시킵니다.
예를 들어 이해합시다.
입력 - X=6
출력 − N과의 차이 ==N과 XOR의 차이:4
설명 − 숫자는 0 2 4 6입니다.
입력 - X=20
출력 − N과의 차이 ==N과 XOR의 차이:4
설명 − 숫자는 0 4 16 20입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수 N을 취합니다.
-
함수 diffisXOR(int n)은 n을 사용하여 n과의 차이가 n이 있는 xor와 동일한 숫자의 개수를 반환합니다.
-
초기 카운트를 0으로 합니다.
-
i=0에서 i<=n.
으로 트래버스 -
i-n==i^n인 경우. 증분 수
-
for 루프 카운트가 끝나면 원하는 결과를 얻을 수 있습니다.
-
카운트를 반환하고 인쇄하십시오.
예
#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