본문 바로가기
  • Let's study
PS/백준

[C++] 백준 27890: 특별한 작은 분수

by 코딩고수이고파 2023. 5. 16.

문제

https://www.acmicpc.net/problem/27890

 

27890번: 특별한 작은 분수

첫 번째 줄에 $0$초에서의 분수의 높이 $x_0$와 $N$이 주어진다. $x_0$와 $N$은 모두 정수이다.

www.acmicpc.net

 

해결방법

시간에 따라 낮아지는 분수의 높이를 구하는 문제이다. n-1초 때 분수의 높이가 바뀌는 계산을 하면 n초에서의 높이가 구해지기 때문에 0 ~ n-1초까지 계산을 한다. 분수의 높이(x)가 짝수( x / 2 ) ^ 6으로, 홀수( 2 * x ) ^ 6으로 분수의 높이를 바꿔주고 마지막으로 계산된 x를 출력한다.

 

코드

#include<iostream>

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int x, n;
	cin >> x >> n;

	for (int i = 0; i < n; i++) {
		if (x % 2 == 0)
			x = (x / 2) ^ 6;
		else
			x = (2 * x) ^ 6;
	}

	cout << x;

	return 0;
}

댓글