darkprince   3년 전

8번하고 10번이 어떤원리(구조)로 돌아가서 값이 잘나오는지 헷갈려서 질문합니다

silvester71   3년 전

이 소스코드는 변수 세개만으로 n번째 피보나치수를 구할 수 있도록 작성된 것 같습니다. 

x번째 피보나치수를 f(x)라고 해봅시다. 42번째 피보나치수를 구하는 과정을 예로 들어보겠습니다. 
f(42)는 f(41)+f(40)의 결과로 얻을 수 있습니다. f(42)를 구하는데 f(1)이나 f(2)와 같은 값이 직접적으로 사용되지 않는것을 관찰할 수 있는데, 이런 불필요한 값들을 버림으로써 다른 소스코드보다 메모리를 절약하며 정상적인 피보나치 수를 구해낼 수 있는 것입니다. 2747번은 메모리조건이 빡빡하지 않기때문에 이러한 장치 없이도 충분히 AC를 받을 수 있습니다.

8행을 모시면 모듈로연산(%)이 사용된 것을 볼 수 있는데, 쉽게 풀어설명하면 변수3개의 사용을 '순환'시켜가면서 답을 구해내는 것입니다. 

이해가 안되시면 연습장에 반복문을 1번실행했을때 2번실행했을때... n번실행했을때의 배열상태를 확인해보시길 바랍니다.

darkprince   3년 전

음... 감이오네요. 답변 너무나도 감사합니다

댓글을 작성하려면 로그인해야 합니다.