`

算法(一)汉诺塔

 
阅读更多

 

#include<iostream>

using namespace std;

void hnt(int,char,char,char);

int main(){

   char a='A',b='B',c='C';

   int n=3;

   hnt(n,a,b,c);

}

void hnt(int n,char a,char b,char c){//把n个盘子从a->c,借用b

   if(n==1){

           cout<<n<<"th disk from"<<a<<"to"<<c<<endl;

   }else{

           hnt(n-1,a,c,b);

                cout<<n<<"th disk from"<<a<<"to"<<c<<endl;

                //(1)把第n个盘子从a->c;

                //(2)从n->n-1个盘子的递归*/

                hnt(n-1,b,a,c);//开始第n-1个盘子的递归

   }           

}

分享到:
评论

相关推荐

    汉诺塔问题算法以及实现

    汉诺塔问题是一个经典的递归算法案例,它不仅在计算机科学领域有着广泛的应用,同时也被用来教授递归思想的基础知识。这个问题最早由法国数学家Édouard Lucas于1883年提出,并以其发明者的名字命名。汉诺塔问题涉及...

    算法分析汉诺塔实验

    这是一个汉诺塔的C语言实验代码,通过它有助于我们更好的理解算法设计与分析问题

    软件算法之汉诺塔动画演示

    汉诺塔游戏是一种经典的递归算法问题,源自印度的一个传说,它通过动画演示能更直观地展示算法的运作过程。这个压缩包包含了“汉诺塔动画演示”的资源,包括一个名为“Hanoi.exe”的可执行文件,可能是用来运行汉诺...

    C经典算法之双色汉诺塔

    ### C经典算法之双色汉诺塔 #### 双色汉诺塔算法解析 双色汉诺塔(Two-color Hanoi Tower)是基于传统汉诺塔游戏的一种变体。传统汉诺塔游戏由三个柱子及不同大小的圆盘组成,玩家的目标是将所有圆盘从初始柱子...

    c语言 汉诺塔 算法

    这是个汉诺塔程序,在调试的时候,输入的数字最好不要大于15,因为每大一个数 所得的结果的步骤都会多一倍。如果你有耐心等待结果的话除外。汉诺塔是在欧洲 流行的一种游戏,有a,b,c三个竿。a竿上有若干个由大到小的...

    汉诺塔的递归算法 C++

    用C++实现汉诺塔的递归算法,定义了类和方法。

    汉诺塔层次迭代算法和分析

    ### 汉诺塔问题迭代算法与分析 #### 引言 汉诺塔问题是一个经典的计算机科学问题,通常被用来教授递归的概念。长久以来,人们普遍认为递归是解决汉诺塔问题的最佳方法。然而,近年来研究者们发现迭代算法也可以...

    数学经典算法-汉诺塔.exe

    汉诺塔是一种古老的游戏,是指在一柱[设为'甲'柱]上从下向上依次放着从大到小的一叠盘子,要把该柱['甲'柱]上的盘子全部搬到指定的柱上[设为'乙'柱],在搬运过程中,可以利用另外一根柱子[设为'丙'柱]来协助搬移,...

    汉诺塔图形解法(递归算法)

    汉诺塔图形解法是利用递归算法来解决汉诺塔问题的一个经典示例。汉诺塔问题是指将一个由多个不同的圆盘组成的柱子从一个柱子移至另一个柱子,而圆盘的大小各不相同,且大的圆盘不能放在小的圆盘上面。汉诺塔图形解法...

    汉诺塔非递归算法实验报告

    汉诺塔问题是一个经典的计算机科学问题,通常使用递归算法来解决。然而,这个实验报告提出了使用非递归算法来解决汉诺塔问题的方法。非递归算法的关键在于找到一个可重复执行的步骤序列,而不是像递归那样通过自我...

    C++ Builder 汉诺塔算法动态演示系统

    汉诺塔(Hanoi Tower)算法是一个经典的递归问题,源于19世纪法国数学家艾德蒙·朗利所提出的一个益智游戏。在C++ Builder环境下,利用C++语言和线程技术来动态演示汉诺塔算法,可以帮助用户直观地理解和学习这个...

    java实现汉诺塔演示及手动操作汉诺塔

    汉诺塔是一个经典的递归问题,...通过阅读代码,我们可以看到如何将理论的汉诺塔算法与Java GUI编程结合在一起,实现了一个交互式的汉诺塔游戏。这对于学习Java编程、递归算法以及图形用户界面设计都是很好的实践案例。

    汉诺塔实现算法

    //程序实现了mystack栈的声明和定义,并且通过函数 //move_stacks的递归调用和函数move_a_ring实现汉 //诺塔的算法,并用函数print_stacks和pr_chars实现汉诺 //塔的动画效果

    C经典算法之三色汉诺塔

    ### C经典算法之三色汉诺塔 #### 知识点概述 三色汉诺塔是一种基于传统汉诺塔问题的变种。在传统的汉诺塔问题中,玩家需要将一叠不同大小的盘子从一个柱子移动到另一个柱子上,中间可以使用第三个柱子作为辅助。...

    flash小游戏汉诺塔-Flash文档类资源

    分析汉诺塔游戏的解决方案,我们可以发现它涉及递归算法。解决汉诺塔问题的经典方法是将大问题分解为更小的子问题,直到这些子问题变得足够简单可以直接解决。在汉诺塔游戏中,这表示将一部分圆盘从起始柱子通过中间...

    flash小游戏汉诺塔

    汉诺塔(Hanoi Tower)是一款经典的逻辑益智游戏,起源于19世纪末的法国,由数学家爱德华·卢卡斯提出。在这个游戏中,有三根柱子和一堆大小不一的圆盘,起初都堆在第一根柱子上,按照从大到小的顺序自下而上排列。...

    汉诺塔问题的递归算法,很简单哦

    汉诺塔问题是一个经典的计算机科学问题,源自印度的古老传说,它很好地展示了递归思想在解决问题中的应用。在这个问题中,我们有3个柱子,分别标记为A、B、C,柱子A上叠放着n个大小不一的盘子,遵循“大盘在下,小盘...

    汉诺塔问题的拓展 四柱汉诺塔

    算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码

    简单的汉诺塔html网页游戏

    汉诺塔游戏是一种基于递归算法的经典逻辑游戏,源自印度古老传说,由法国数学家爱德华·卢卡斯在19世纪末正式提出。在这个简单的汉诺塔HTML网页游戏中,玩家将体验到如何通过一系列合法移动将全部圆盘从一根柱子...

Global site tag (gtag.js) - Google Analytics