Win 10 + 64 bit + 8 GB 램 + Visual Studio Community 2017 에서는 10000 까지 잘 되는데요..
PC 환경이 어떻게 되세요?
10826번 - 피보나치 수 4
저도 vs2015에서 해보니 프로그램이 죽는데, 스택 오버플로우 때문입니다. 재귀 함수 호출이 너무 깊어서 중간에 기본 할당 스택 크기를 넘어가버리는 것 같아요. 2017에서는 기본 스택 사이즈가 좀 더 큰가 싶기도 하네요. 그리고 debug로 하면 6000쯤에서 죽는데 release로 해보시면 9900 언저리까지 돌아갑니다. 스택 아슬아슬하게 넘는 거 같아요. 여기 채점 환경이 vs보다 기본 스택 사이즈가 더 커서 통과되는지 아니면 뭐 gcc쪽에서는 재귀 함수 호출에서 스택 메모리를 좀 덜 먹는지는 모르겠지만 아무튼 아슬아슬하게 통과가 되나 보네요.
vs에서도 프로젝트 속성 - 링커 - 시스템 - 스택 예약 사이즈 를 넉넉하게 수정하시면 안 죽고 돌아갑니다.
댓글을 작성하려면 로그인해야 합니다.
xowns9418 6년 전
문제의 n 최대값은 10000입니다. 그런데, 제 코드로는 약 5000번째 피보나치수 까지는 잘 출력이 되는데 6000정도 되면 실행이 안되고 종료됩니다. 혹시나 해서 제출해봤더니 AC가 뜨네요.... 왜 일까요?
아래는 제 코드입니다.
코드에 대해 간단히 설명 드리면 피보나치수의 자리수가 커질거 같아서 dp배열을 string으로 만들고 피보나치 값을 저장했습니다.