csj702   8년 전

n이 3이상일때문 if문에 들어가기때문에
d[3] = d[2] + d[1] 이고 d[1], d[2]는 각각 1과 2로 정해져있기 때문에
d[3] = 3이 되고 그 이사의 나머지 숫자들도 그렇게 진행되어서
답이 맞는것 아닌가요? ㅠㅠ

egpaltair   8년 전

일단... int형 배열 d에 초기화 되어 있는 값은 int d[1001] = { 0, 1, 2, }인데... 그 이후로 나머지 값은 전역변수로 선언되어 있기에 나머지 값은 0을 가지고 있죠?

그런데 나머지값이 계산이 안 된 상태에서 n값을 넘겨주면 제대로된 값이 안 나올겁니다.


예를 들어 n = 4라고 해보죠.. 함수에서 n은 4니까 3보다 큽니다. 그래서 if문 조건을 만족하는데 d[3]이 구해지지 않은 상태로 값을 연산해버리니, d[4] = 5가 나와야하는데 d[3] = 0이므로 d[4] = 0 + 2가 되어 d[4] = 2가 나올 거 같습니다.


이럴 땐 n이 3이상 일 때, 반복문을 그만큼 돌려주므로써 이를 해결 할 수 있습니다.

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