시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
피보나치 진법은 0과 1만으로 모든 자연수를 유일하게 나타내는 방법이다.
자연수 N을 피보나치 진법으로 N=anan−1⋯a1F 와 같이 나타내면, 그 값은 N=anFn+an−1Fn−1+⋯+a1F1 이다. 여기서 Fk는 피보나치 수열로 F0=F1=1, Fi=Fi−1+Fi−2 로 정의된다. 각 자연수를 유일하게 나타내기 위해, 피보나치 진법에서는 두 개의 1이 서로 인접할 수 없다.
다음은 몇몇 자연수를 피보나치 진법으로 나타낸 것이다.
1=1F,2=10F,3=100F,4=101F,5=1000F,6=1001F,7=1010F
이제 자연수 1,2,3,⋯ 를 차례대로 피보나치 진법으로 나타낸 뒤, 그 결과 문자열을 모두 이어 붙이자. 그러면 만들어지는 문자열의 앞부분은 110100101100010011010⋯ 이 된다.
이 문자열의 처음 N글자 중에 1이 몇 개 있는지 구하여라.
첫째 줄에 정수 N이 주어진다. (0≤N≤1015)
이어 붙인 문자열의 처음 N글자에 들어 있는 1의 개수를 출력한다.