Moo 게임
면접 대비시간 제한1초메모리 제한128 MB
재귀적으로 정의된 Moo 수열의 N번째 문자가 'm'인지 'o'인지 판별한다. N은 10억 이하다.
문제
Moo는 여러 사람이 함께 즐길 수 있는 게임으로, 각자 Moo 수열의 글자를 한 개씩 순서대로 외치면 된다.
Moo 수열은 길이가 무한한 문자열이며, 다음과 같이 시작한다.
m o o m o o o m o o m o o o o m o o m o o o m o o m o o o o o
Moo 수열은 다음과 같이 재귀적으로 정의된다. 먼저 을 길이가 3인 문자열 moo라고 하자. 인 모든 에 대해, 는 뒤에 문자 m 하나와 그 뒤에 오는 o 개로 이루어진 문자열(즉 m 다음에 o가 개)을 붙이고, 다시 그 뒤에 을 붙여서 만든다.
S(0) = "m o o"
S(1) = "m o o m o o o m o o"
S(2) = "m o o m o o o m o o m o o o o m o o m o o o m o o"
이 과정을 반복하면 길이가 무한한 문자열을 얻을 수 있으며, 이 문자열을 Moo 수열이라고 한다.
정수 이 주어졌을 때, Moo 수열의 번째 글자를 구하는 프로그램을 작성하시오. (글자는 1번째부터 센다.)
입력
첫째 줄에 정수 ()이 주어진다.
출력
Moo 수열의 번째 글자(m 또는 o)를 출력한다.