1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <stdio.h> void hanoi(int n, char from, char tmp, char to); void main() { int n; printf("층 수:"); scanf("%d",&n); hanoi(n,'A','B','C'); } void hanoi(int n, char from, char tmp, char to) { if(n==1) { printf("%d번째 판을 판 %c에서 판 %c로 이동 \n",n, from, to); //n이 1일때 바로 c로 이동하도록. } else { hanoi(n-1, from, to, tmp); //첫번째 재귀 : n이 1이 아닐때. tmp에 다 오도록 함 printf("%d번째 판을 판 %c에서 판 %c로 이동 \n",n, from, to); //다음출력 hanoi(n-1, tmp, from, to); //두번재 재귀 : tmp에서 to에 다 오도록 함 } } |
'+ 컴퓨터 > C' 카테고리의 다른 글
C언어, 자바 등 프로그래밍 언어 출력값 쉽게 확인하는 방법. (0) | 2012.04.09 |
---|---|
[C언어] 기초 예제 2 - 구구단 짜기 (0) | 2012.04.09 |
[C언어] 기초 예제 1 - printf 사용, 두 수의 연산, 마일과 미터 변환, 정수의 합, 부호판별 (0) | 2012.04.09 |
[C언어] 정수 배열의 원소들을 화면에 출력(배열 + 포인터 예제) (0) | 2012.04.05 |
[C언어] 정수 배열의 원소들을 난수를 사용하여 채우는 함수 (배열 + 난수 + 포인터 예제) (0) | 2012.04.05 |