//아래의 코드를 main함수에서 호출하는 부분을 박스로 타고 들어가는 모습을 형상화해 보았습니다.
//유심히 보시고 재귀함수의 원리를 이해하는데 도움이 되었으면 합니다.
#include <stdio.h>
void move(int from, int to)
{
printf("%d %d\n", from, to);
}
void A(int n, int from, int by, int to)
{
if(n==1)
move(from, to);// move1
else
{
A(n-1, from, to, by); // A1
move(from, to); // move2
A(n-1, by, from, to); // A2
}
}
void main()
{
A(3,1,2,3);
}
//형상화 부분
void main()
{
A(3,1,2,3);
int n = 3, int from = 1, int by =2, int to=3 A(2,1,3,2);
move(1,3); 1 3 출력됨 A(2,2,1,3);
|
}
'언어 자료구조 알고리즘 > C언어 예제' 카테고리의 다른 글
정보 올림피아드 (0) | 2009.08.19 |
---|---|
중복되지 않게 랜덤한 카드 발생 (0) | 2009.08.19 |
파이, e, sin 구하기 (0) | 2009.08.19 |
Sin함수 만들기(II) (0) | 2009.08.19 |
적분 공식을 이용한 Sin(x)함수 만들기 (0) | 2009.08.19 |
정보올림피아드 프로그래밍 (0) | 2009.08.19 |
간단하게 Random함수 만들기 (0) | 2009.08.19 |
한글 초성 알아내기 (0) | 2009.08.19 |
쉬프트 연산 (1) | 2009.08.19 |
비쥬얼 c++ 틀린부분점 ㅠ (0) | 2009.08.19 |