c++汉诺塔实现代码怎么写

avatar
作者
筋斗云
阅读量:2

以下是C++中汉诺塔问题的实现代码:

#include <iostream>  void hanoi(int n, char source, char auxiliary, char destination) {     if (n == 1) {         std::cout << "Move disk 1 from " << source << " to " << destination << std::endl;         return;     }          hanoi(n - 1, source, destination, auxiliary);     std::cout << "Move disk " << n << " from " << source << " to " << destination << std::endl;     hanoi(n - 1, auxiliary, source, destination); }  int main() {     int numDisks;     std::cout << "Enter the number of disks: ";     std::cin >> numDisks;          hanoi(numDisks, 'A', 'B', 'C');          return 0; } 

这个代码示例中,hanoi函数用于递归地解决汉诺塔问题。它接受四个参数:n表示要移动的盘子数量,source表示源柱子,auxiliary表示辅助柱子,destination表示目标柱子。当n等于1时,即只有一个盘子需要移动时,直接将该盘子从源柱子移动到目标柱子。否则,先将n-1个盘子从源柱子移动到辅助柱子上,然后将第n个盘子从源柱子移动到目标柱子上,最后再将n-1个盘子从辅助柱子移动到目标柱子上。

main函数中,用户需要输入要移动的盘子数量,然后调用hanoi函数来解决问题。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!