본문 바로가기

프로그래밍 아카데미/1기 파주메이커스

프로그래밍 아카데미 - 재귀함수

728x90

ko.wikipedia.org/wiki/%EC%9E%AC%EA%B7%80_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)

 

재귀 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

컴퓨터 과학에 있어서 재귀(再歸, Recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(Recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다.

 

www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=227&sca=10d0

 

JUNGOL

 

www.jungol.co.kr

#include <stdio.h>

int pos = 0;
int count = 0;

int array[10];

int rec3(int c)
{
	if(6 < c) return c;

	printf("\t\t3=%d ", c);
	printf("\r\n");
	
	return rec3(c+1);
}

int rec2(int c)
{
	if(6 < c) return c;

	printf("\t2=%d ", c);
	printf("\r\n");
	
	rec3(c);
	
	return rec2(c+1);
}

int rec(int c)
{
	if(6 < c) return c;

	printf("1=%d ", c);
	printf("\r\n");
	
	rec2(c);
	
	return rec(c+1);
}

int recA(int pos, int c)
{
	if(6 < c) return c;

	if(pos == count) 
	{
		for(int i = 0; i < count; i++)
		{
			printf("%d ", array[i]);
		}
		
		printf("\r\n");

		return pos;
	}

	array[pos] = c;
	
	recA(pos + 1, c);
	
	return recA(pos, c+1);
}

int main(void)
{
	scanf("%d", &count);
	
	for(int i = 0; i < count; i++) array[i] = 1;
	
	recA(0, 1); // 주사위 던지는 회 수, 주사위  값
}