Hanoi塔问题

汉诺塔问题

#include <iostream> using namespace std; void Hanoi(int n, char src, char mid, char dest ) //将src上的盘子以mid为中转移动到dest { if (n == 1){ cout << src << "-->" << dest <<endl; return; } //如果只有一个盘子,那么直接从src移动到dest即可 Hanoi(n-1, src, dest, mid); //先将n-1个盘子从src移动到mid,以dest为中转 cout << src << "-->" << dest <<endl; //再将最大的一个盘子从src直接移动到dest Hanoi(n-1, mid, src, dest); //最后将n-1个盘子从mid移动到dest,以src为中转 } int main(){ int n; cin >> n; Hanoi(n, 'A', 'B', 'C'); return 0; }

 

posted on 2019-12-08 20:21  All-blue  阅读(319)  评论(0编辑  收藏  举报

导航