十三周——汉诺塔(2)

来源:互联网 发布:繁体转简体软件 编辑:程序博客网 时间:2024/05/29 15:19
/** Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作    者:申玉迪* 完成日期:2013 年 11 月 22 日* 版 本 号:v1.0* 输入描述: 无* 问题描述:把n个盘子从A盘移到C盘的步骤。*/#include <iostream>using namespace std;long move(int n,char A,char B,char C)//A通过B移到C{    long c1,c2;    if(n==1)    {        cout<<A<<"-->"<<C<<endl;        return 1;    }    else    {        c1=move(n-1,A,C,B);//把n—1个盘子从A盘通过B盘移到C盘        cout<<A<<"-->"<<C<<endl;        c2=move(n-1,B,A,C);        return c1+c2+1;    }}int main(){    int n;    long z;    cout<<"请输入盘子个数:";    cin>>n;    z=move(n,'A','B','C');    cout<<"4个盘子需移动"<<z<<"次"<<endl;    return 0;}


 

从一开始思想就固定了,只有void型的才可以有输出,原来别的也一样可以有输出。

 

 

若老和尚移动64个盘子,不知会移动多少年,估计到死也可能完不成。
原创粉丝点击