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

   2025-02-15 6820
核心提示:以下是C++中汉诺塔问题的实现代码:#include iostreamvoid hanoi(int n, char source, char auxiliary, char destination) {if (

以下是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函数来解决问题。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言