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