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)
컴퓨터 과학에 있어서 재귀(再歸, Recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(Recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다.
www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=227&sca=10d0
#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); // 주사위 던지는 회 수, 주사위 값
}