递归解决汉诺塔问题+改变规则解决

一、汉诺塔问题

1.1 问题描述

三根柱子,其中一根柱子从上到下依次摆放着从小到大的圆盘:
- 每次只能移动一个圆盘
- 并且大圆盘不能在小圆盘之上
- 需要把这个柱子上的圆盘全部移动到另一根柱子上

问题抽象为,把a柱子上的N个圆盘按照顺序摆放到柱子c上:

这里写图片描述

1.2 问题解决

可以吧解决步骤抽象成:
1. 将N-1个圆盘从a移动到b
2. 把第N个圆盘从a移动到c
3. 把N-1个圆盘从b移动到c

1.3 代码实现

//n个圈从left移动到right
void hanNoTa(int n,char left,char right,char mid){
    if(n){
        hanNoTa(n-1,left,mid,<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值