재귀함수로 하노이탑 구현은 알겠는데
for문(반복문)으로 구현하는게 감도 안잡힙니다.
선배님들 도움 부탁드립니다.
아래 코드를 참고해보시기 바랍니다.
#include <stdio.h> #include <conio.h> #define pause getch() int main() { int i, j, n[10]={1,1,1,1,1,1,1,1,1,1}, c[10]={0}; char p; j = 4; //초기 탑의 높이, 여기에서는 1~10까지만 가능... for (i = 0; i < j;) if (n[i] != 0 || !(i++ + 1)) { if (p = c[i], (i + j) % 2) c[i]-- == 0 && (c[i] = 2); else c[i]++ == 2 && (c[i] = 0); printf("%3d원판을 %c에서 %c로 옮긴다\n", i + 1, 'A' + p, 'A' + c[i]); for (n[i]--, i--; n[i] == 0 || (i = 0); n[i--] = 1); } pause; return 0; }
출처 : https://m.blog.naver.com/PostView.nhn?blogId=bsbs0126& ;amp;logNo=150036747629&proxyReferer=https:%2F%2Fwww.google.com %2F
아래 코드를 참고해보시기 바랍니다.
출처 : https://m.blog.naver.com/PostView.nhn?blogId=bsbs0126& ;amp;logNo=150036747629&proxyReferer=https:%2F%2Fwww.google.com %2F