問題:將n個盤從A移到C,藉助Bios
一、n==1,直接從A移到C,返回;spa
二、遞歸,將n-1個盤從A移到B,藉助C;code
三、1個盤從A移到C;遞歸
四、遞歸,n-1個盤從B移到C,藉助A。io
#include<iostream> using namespace std; void move(char src, char dest){ cout<<src<<"-->"<<dest<<endl; } void hanoi(int n, char chA, char chB, char chC){ if(n==1){ move(chA, chC); return; } hanoi(n-1, chA, chC, chB); move(chA, chC); hanoi(n-1, chB, chA, chC); } int main(){ hanoi(10, 'A', 'B', 'C'); return 0; }
等有空再整理吧class