汉诺塔

来源:互联网 发布:人工智能 人类 奴隶 编辑:程序博客网 时间:2024/06/07 04:51
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: fibnacci.cpp* 作    者:高古尊* 完成日期:2013 年11  月25  日* 版本号: v1.0** 输入描述:要移动盘子的个数* 问题描述:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。古代有一个梵塔,塔内有三个座 A、B、C,A 座上有64 个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64 个盘子从A 座移到C 座,但每次只能允许移动一个盘子,并且在移动过程中,3 个座上的盘子始终保持大盘在下, 小盘在上* 程序输出:盘子的移动规律* 问题分析:结合递归函数;盘子的移动规律:先将n-1个盘子从A移动到C,再将1个盘子从A移动到B;再将n-1个盘子从C移动到A;再将1个盘子从B移动到C;最后将n-1个盘子从A移动到C*/#include <iostream>using namespace std;void pingyi(int);void arcpingyi(int);int main(){    int n;    cin>>n;   pingyi(n);    return 0;}void pingyi(int n){    if(n==1)       {         cout<<"A→C\n";         return ;       }    else    {       pingyi(n-1);       cout<<"A→B\n";       arcpingyi(n-1);       cout<<"B→C\n";       pingyi(n-1);       return ;    }}void arcpingyi(int n){    if(n==1)        {            cout<<"C→A\n";            return ;        }    else    {       arcpingyi(n-1);       cout<<"C→B\n";       pingyi(n-1);       cout<<"B→A\n";       arcpingyi(n-1);       return ;    }}

小结:return ;就是将以上全部过程返回。


原创粉丝点击