题目:
一个庙里有三个柱子,第一个有64个盘子,从上往下盘子越来越大。 要求庙里的老和尚把这64个盘子全部移动到第三个柱子上。 移动的时候始终只能小盘子压着大盘子。而且每次只能移动一个。
代码:
#include <cstdio> //将移动的打印 void move(char x,char y) { printf("%c->%c\n",x,y); } void hanno(int n,char a,char b,char c) { if(n==1) move(a,c); else{ hanno(n-1,a,c,b); move(a,c); hanno(n-1,b,a,c); } } int main() { int n; scanf("%d",&n); hanno(n,'A','B','C'); return 0; }
三层的示例图,感觉还是有点晕晕的,时间会给我答案吧