C语言——汉诺塔问题递归求解思考

前言

汉诺塔问题,是心理学实验研究常用的任务之一,相传是古印度寺庙中的一款游戏。作为编程小白,研究汉诺塔问题并在C语言中以递归算法实现还是挺有难度的,以下是本人对该问题的思考所得。所写内容均为本人拙见,如若有误,还望大神前辈们指点一二。

                                                                                                                                                           

汉诺塔问题

游戏规则:有三根柱子(编号A、B、C),在A柱自下而上、由大到小摆放着数个圆盘。需要用最少的步骤将A杆上的圆盘全部移到C杆上,并仍保持原有顺序。

操作要求:每次只能移动一个圆盘,并且在移动过程中始终保持大盘在下,小盘在上

首先,我罗列出了当A柱上有1、2、3、4个圆盘这四种情况的实现过程。

由此不难发现,当n=1时,只需移动一次即可。当n>1时,最中间的步骤永远是将第n个圆盘从A移向C的过程,在此之前是将n-1个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值