Tech Blog/C and C++

C언어 - recursion (재귀)

EXPRESSIONS HAVE POWER 2021. 6. 17. 17:47

recursion이란

함수안에서

함수 자기 자신을 호출하는 방법이다.

 

1. RecursionTest

#include <stdio.h>

void RecursionTest(int count)
{
    if (count == 0)    // 종료 조건을 만듦. count가 0이면 다시 RecursionTest 함수를 호출하지 않고 끝냄
        return;

    printf("RecursionTest %d\n", count);

    RecursionTest(--count);    // count를 감소시켜서 다시 RecursionTest에 넣음
}

int main()
{
    RecursionTest(5);    // RecursionTest 함수 호출

    return 0;
}

실행결과 

RecursionTest 5
RecursionTest 4
RecursionTest 3
RecursionTest 2
RecursionTest 1

2. 이건 어케씀?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void printd(int n);

int main()
{
	printd(231);
}


void printd(int n)
{
	if (n < 0)
	{
		putchar('-');
		n = -n;
	}
	if (n / 10)
	{
		printd(n / 10);
	}
	putchar(n % 10 + '0');
	exit(1);   // 종료조건을 안 넣으면 무한 반복하므로 넣어야 함.
}

실행결과

2

실행결과
-521 넣을시 

-5