- #include <iostream.h>
- void moveDisks(int disknum,char sourcePole,char targetPole,char midPole);
- int main()
- {
- int n;
- cout<<"请输入盘子的数目:";
- cin>>n;
- if(n<=0)
- cout<<"盘子数目必须大于0";
- else
- moveDisks(n,'A','C','B');
- return 0;
- }
- void moveDisks(int disknum,char sourcePole,char targetPole,char midPole)
- {
- if (disknum==1)
- cout<<sourcePole<<"->"<<targetPole<<endl;
- else
- {
- moveDisks(disknum-1,sourcePole,midPole,targetPole);
- cout<<sourcePole<<"->"<<targetPole<<endl;
- moveDisks(disknum-1,midPole,targetPole,sourcePole);
- }
- }