상세 풀이과정좀 알려주세요,, 답안지에 디버깅 가지고는 해결이안되네요 ㅜㅜ
문제3번
안녕하세요 길벗수험서 운영팀입니다.
알고리즘이 별달리 존재하지 않는 사용자정의함수 + 2중 반복문 형태라 값의 변화만 놓치지 않고 디버깅표대로 계속 따라가면 됩니다.
첫 번째 반복문의 형태가 복잡하지만 뜯어보면 생각보다 어렵지 않습니다.
for(int i=2; i<=a; i++, c=r)
for문의 실행 순서를 명확히 인지해두세요.
초기값 -> (조건식 -> 실행문 -> 증가식 ->) x 반복, 입니다.
첫 번째는 초기값 -> 조건식 -> 실행문(다음 반복문) 입니다.
처음에 i=2, c=1, r=0의 값을 갖고 다음 반복문을 수행하겠죠.
for(int j=1; j<=i; j++)
j는 1부터 2보다 작거나 같은 동안 r=r+c를 수행합니다.
for(int i=2; i<=a; i++, c=r)
두 번째입니다. 증가식 -> 조건식 -> 실행문(다음 반복문) 형태로 진행됩니다.
i값이 증가되고, c=r을 수행하고 (실행문의) r=0까지 수행하면
i=3, c=2, r=0이 됩니다. 이 값을 가지고 다음 반복문을 수행합니다.
이러한 과정이 계속 반복되어 마지막에 가진 func(a)의 r의 값이 main()의 r에 리턴되고 이 값이 출력되게 됩니다.
행복한 하루되세요 :)
-
관리자2020-05-18 11:52:38
안녕하세요 길벗수험서 운영팀입니다.
알고리즘이 별달리 존재하지 않는 사용자정의함수 + 2중 반복문 형태라 값의 변화만 놓치지 않고 디버깅표대로 계속 따라가면 됩니다.
첫 번째 반복문의 형태가 복잡하지만 뜯어보면 생각보다 어렵지 않습니다.
for(int i=2; i<=a; i++, c=r)
for문의 실행 순서를 명확히 인지해두세요.
초기값 -> (조건식 -> 실행문 -> 증가식 ->) x 반복, 입니다.
첫 번째는 초기값 -> 조건식 -> 실행문(다음 반복문) 입니다.
처음에 i=2, c=1, r=0의 값을 갖고 다음 반복문을 수행하겠죠.
for(int j=1; j<=i; j++)
j는 1부터 2보다 작거나 같은 동안 r=r+c를 수행합니다.
for(int i=2; i<=a; i++, c=r)
두 번째입니다. 증가식 -> 조건식 -> 실행문(다음 반복문) 형태로 진행됩니다.
i값이 증가되고, c=r을 수행하고 (실행문의) r=0까지 수행하면
i=3, c=2, r=0이 됩니다. 이 값을 가지고 다음 반복문을 수행합니다.
이러한 과정이 계속 반복되어 마지막에 가진 func(a)의 r의 값이 main()의 r에 리턴되고 이 값이 출력되게 됩니다.
행복한 하루되세요 :)