반응형
https://www.acmicpc.net/problem/12833
12833번: XORXORXOR
세 수 A, B, C를 입력 받은 다음, ( ( ( ( A XOR B ) XOR B ) XOR B ) … ) XOR B 형태로 연산을 C회 했을 때의 결과값을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
XOR의 성질을 알 수 있는 수학문제였습니다.
📕 풀이방법
📔 입력 및 초기화
a, b, c, ans를 선언합니다. 그 후 a, b, c를 입력합니다.
📔 풀이과정
XOR는 같은 값의 비트에 대해 0을, 다른 값의 비트에 대해 1인 계산결과를 보여줍니다.
따라서 (a XOR b) XOR b를 하게 된다면 자기 자신이 나오는 특징을 가지게 됩니다. c가 짝수라면 XOR를 짝수번 실행하므로 a를, 홀수라면 a^b의 결과를 ans에 저장합니다.
📔 정답출력
ans를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int a,b,c,ans;
int main(){
cin >> a >> b >> c;
if(c % 2) ans = a ^ b;
else ans = a;
cout << ans;
}
'Algorithm > Math' 카테고리의 다른 글
(C++) - 백준(BOJ) 13610 : Volta (0) | 2021.10.07 |
---|---|
(C++) - 백준(BOJ) 19939번 : 박 터뜨리기 (0) | 2021.09.26 |
(C++) - 백준(BOJ) 8723번 : Patyki (0) | 2021.09.14 |
(C++) - 백준(BOJ) 21771번 : 가희야 거기서 자는 거 아니야 (0) | 2021.09.13 |
(C++) - 백준(BOJ) 8718번 : Bałwanek (0) | 2021.09.12 |