재귀함수

박미라·2022년 11월 7일
0

알고리즘

목록 보기
3/3
post-thumbnail

매번 재귀함수가 헷갈렸는데 이번 알고리즘 스터디 덕분에 이해됐다.

재귀함수의 포인트는
자기 자신 호출호출이 다 끝났을 때 호출된 함수들을 정리하는 것이다.

☝🏻 재귀함수: 재귀함수가 함수 마지막 부분에 있을 때

#include <stdio.h>

int Print(int x){
	
    //호출 종료 조건
    if(x == 0){
        return 0;
    }

    printf("%d ");
    
    Print(--x);
}
//출력: 3 2 1 

int main(void){
    Print(3);
    
    return 0;
}

✌🏻재귀함수: 재귀함수 호출 뒤에 함수가 남아 있을 때

void binary(int n){
    int r;
    r = n % 2;

    if(n>=2){
        binary(n/2);
    }

    cout << r;
    return;
}

int main(void){
    binary(10);
    return 0;
}

나는 이 두 가지를 똑같다고 생각해서 항상 헷갈렸던 거 같다.
다들 나처럼 헷갈리지 않게 처음 배울 때 제대로 배웠음 한다..
비록 빈약한 그림이지만 조금이라도 이해가 되었길 바란다!

0개의 댓글