본문 바로가기
Develop/백준 (Cpp)

[백준] 12833번 : XORXORXOR (C++)

by Tarra 2023. 8. 1.

12833번 : XORXORXOR


문제)

세 수 A, B, C를 입력 받은 다음, ( ( ( ( A XOR B ) XOR B ) XOR B ) … ) XOR B 형태로 연산을 C회 했을 때의 결과값을 출력하는 프로그램을 작성하시오.

 

 

 

입력 :

첫째 줄에 A, B, C가 주어진다. (0 < A, B, C ≤ 10e9)

 

 

 

출력 :

첫째 줄에 계산된 결과를 출력한다.

 

 

 

 

풀이)

XOR 연산의 경우 같은 수로 XOR연산을 2번 하면 원래의 수로 돌아오게 된다.

따라서 C가 홀수, 짝수인지만 판단하여 값을 출력해주면 된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
int a, b, c;
int main()
{
    cin >> a >> b >> c;
 
    if (c % 2)
    {
        cout << (a ^ b);
    }
    else
    {
        cout << a;
    }
    return 0;
}
 
// 13        3
// 1101        0011
 
// 3
// 11
 
// 13 ^ 3 == 
// 1101 ^ 0011 => 1110
// 1110 ^ 0011 => 1101
// 1101 ^ 0011 => 1110
// 1110 ^ 0011 => 1101
cs

출처 : https://www.acmicpc.net/problem/12833 

 

12833번: XORXORXOR

세 수 A, B, C를 입력 받은 다음, ( ( ( ( A XOR B ) XOR B ) XOR B ) … ) XOR B 형태로 연산을 C회 했을 때의 결과값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net