手动模式:点击选择一个盘子,然后点击目标柱子进行移动
A
B
C
移动方案:
点击「生成移动方案」按钮获取最优移动步骤
汉诺塔核心C++实现代码
// 汉诺塔递归求解函数
void hanoi(int n, char from, char to, char aux) {
// 递归终止条件:只有一个盘子时直接移动
if (n == 1) {
cout << "将盘子1从" << from << "移动到" << to << endl;
return;
}
// 递归步骤1:将n-1个盘子从源柱移动到辅助柱
hanoi(n - 1, from, aux, to);
// 递归步骤2:将第n个盘子从源柱移动到目标柱
cout << "将盘子" << n << "从" << from << "移动到" << to << endl;
// 递归步骤3:将n-1个盘子从辅助柱移动到目标柱
hanoi(n - 1, aux, to, from);
}
// 主函数调用示例
int main() {
int diskCount = 3; // 盘子数量
cout << "汉诺塔移动步骤(" << diskCount << "个盘子):" << endl;
hanoi(diskCount, 'A', 'C', 'B'); // A:源柱, C:目标柱, B:辅助柱
return 0;
}
当前模式:
手动模式手动
移动次数:
0
游戏状态:
准备开始
最少步数:
7
最优解排行榜
暂无记录,挑战最优解即可上榜!