关于汉诺塔进阶衍生问题!
原来的汉诺塔问题,相信各位大侠都熟知不已,这里就不赘述了。小弟最近遇到的是一个进阶型的,就是把整个搬运的步骤图案给打印出来。,以3块为案例,开始效果图如图:
step1:
-|- | | \*默认每块砖是不同大小的,大在下,小在上,其中中间那根东西是针。。。*\
--|-- | |
---|--- | |
step2:
| | |
--|-- | |
---|--- -|- |
step3:
| | |
| | |
---|--- -|- --|--
......
\*就是这样打印,的图案。*\
顺便引用下汉诺塔问题的代码(原来那玩意,就是从哪个移到哪个,简单的步骤。)。
程序代码:
#include <stdio.h> int main (void) { int n; void hanoi(int n,char a,char b, char c); scanf("%d",&n); hanoi(n,'a','b','c'); return 0; } void hanoi(int n,char a,char b, char c) { if(n==1){ printf("%c-->%c\n",a,b); } else { hanoi(n-1,a,c,b); printf("%c-->%c\n",a,b); hanoi(n-1,c,b,a); } }