답이 피보나치 수열로 나오는건 아시죠?
근데 이 피보나치 수열이 황금비^n 꼴로 늘어납니다. 즉, 16번째 피보나치 수열은 황금비^16 정도라고 유추할 수 있습니다. (실제로는 차이가 좀 있지만요. 그 차이가 여기서별로 중요하진 않으니 넘어가겠습니다.)
그런데 만약 n 이 90이라면? 황금비를 1.6 이라고 하고 계산하니까 1.08 * 10의 20승 이 나오네요.
int 가 표현할 수 있는 최대의 수가 21억 정도(2^31 - 1)임을 고려하면, 90번째 피보나치수는 그를 훨씬 상회하고도 남네요.
따라서, int 형이 아닌 그것보다 더 큰 정수형인 long long int (아니면 long long) 을 써주서야 합니다.
덩달아서 출력할때도 %d 가 아닌 %lld 를 사용하셔야 하구요.
long long 의 범위가 9.22 * 10 ^ 20 이니까, 90번째 피보나치수보다는 크네요!
ksq111 6년 전
케이스를 확인하는데 어떤부분을 놓쳤는지 잘 모르겠습니다