티스토리 뷰

반응형


#include "stdio.h"

#define MAX 10

int arr[MAX] = {1,2,3,4,5,6,7,8,9};

int sum(int st, int ed) { 
        if(st == ed) {
                return arr[st];
        }
        else return sum(st, ed-1) + arr[ed];
}

void main() {
    printf("sum : %d ", sum(0, MAX-1));
}


 위 소스코드는 흔하디 흔한 1~10 까지 더해주는 프로그램이다. 대부분 이 프로그램을 코딩할 때 for문을 사용하지만 이 코드에서는 재귀함수(Recursion)가 사용되었다.

 문제해결기법 강의 교수님이 말하길 재귀함수는 프로그래밍에 있어 가장 중요한 부분 중 하나이며, 이에 익숙해지기 위해서는 모든 문제에 대해 그 해결법을 재귀적으로 접근하는 연습을 해야한다고 한다. 또한 무엇보다도 본인이 점화식을 통해 재귀함수를 끄집어 내는 과정이 중요하며 정 이해가 안된다면 디버깅을 통해 함수가 어떻게 재귀적으로 작동하는지 확인도 할 줄 알아야한다.

 마찬가지로 피보나치 수열을 재귀적으로 접근해 해결한 코드도 있다.

2014/09/18 - 기가 막히고 코가 막히는 피보나치 수열 재귀함수


으으 재귀함수 어려움


반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

댓글쓰기 폼
«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함
Total
3,248,816
Today
618
Yesterday
500