c语言汉诺塔问题

我只想安静得当个java程序员,万恶的数据结构啊


//递归:汉诺塔问题

//原理实现:将地下最大一块移动到三号柱体上,剩余通过空的一根柱子递归


   *                                                                                                              *
  **                                          *                           *                                     **
 ***                      ——>         **         ——>        **             ——>             *** 
****                             ****     ***                         ***      ****                      ****
A          B         C           A      B      C         A        B        C            A     B    C       


                                                         


void tower(int n,char fromPeg,char toPeg,char auxPeg){
//把最后一个由fromPeg放到toPeg上面
if(n==1){
printf("%s%c%s%c\n,"move disk1 from peg",fromPeg,"toPeg",toPeg);
return;
}
//将n-1个借助toPeg由fromPeg移动到auxPeg上
tower(n-1,fromPeg,auxPeg,toPeg);


//将n移动到toPeg上
printf("%s%d%s%c%s%c","movedisk",n,"fromPeg",fromPeg,"toPeg",topeg);


//将n-1个由auxPeg移动到toPeg
tower(n-1,auxPeg,toPeg,fromPeg);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值