第13周项目12-汉诺塔扩展

本文讨论了如何使用递归方法解决移动盘子的问题,并详细介绍了计算盘子移动次数的过程。
/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fibnacci.cpp
* 作    者: 孔云
* 完成日期:2013年11月23日
* 版 本 号: v1.0
* 输入描述:无
* 问题描述:编制移动盘子方案。
* 程序输出:盘子移动次数。
* 问题分析:采用递归的方法……
*/
#include <iostream>
using namespace std;
void move(int,char,char,char);
void dong(char,char);
void cishu(int);
int main()
{
    int n;
    cout<<"请输入盘子个数:";
    cin>>n;
    move(n,'A','B','C');
    return 0;
}
void move(int n,char A,char B,char C)
{
    int i=1,sum=0;
    if(n==1)
    {
        dong(A,C);
        cishu(1);
    }
    else
    {
        move(n-1,A,C,B);
        dong(A,C);
        cishu(i);
        move(n-1,B,A,C);
    }
    sum+=i;
}
void dong(char a,char b)
{
    cout<<a<<"-->"<<b;
}
void cishu(int sum)
{
    cout<<"移动次数:"<<sum<<endl;
}


心得体会:为什么那些移动的次数加不起来呢?谁帮一下这个可怜的笨鸟啊快哭了   为什么每一次移动的次数不加起来?大哭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值