汉诺塔略写

Posted zt1037054045

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汉诺塔略写相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void hanoi(int n,char A,char B,char C)/*n为积木的数量,ABC为三根柱子,A是起点,B是辅助点,C是终点*/ 
{
     if(n==1) 
    {
        printf("%c -> %c\n",A,C);/*只有一个盘子就直接A移动到C就好了*/ 
    }
    else
    {
        hanoi(n-1,A,C,B);/*把A中除了底部那块积木看成一个整体为n-1块,绕过C柱放到B*/ 
        printf("%c -> %c\n",A,C);/*把剩下的最底下的那块放到C上*/ 
        hanoi(n-1,B,A,C);/*把放到B上的n-1块在放到C上*/ 
    }
}
 int main()
 {
     hanoi(3,A,B,C);
     return 0;     
 }

这个代码比较简单,主要通过改变n的值来改变积木的数量,从最少的两块开始理解,A>B,A>C,B>C,然后开始用递归的思想,把除了最底下的那一块积木看成整体,即为“1”为一个整体,“n-1”为一个整体,开始循环开始的步骤就ok了,这就是汉诺塔游戏最简单的一种表达。

以上是关于汉诺塔略写的主要内容,如果未能解决你的问题,请参考以下文章

代写Haskell程序 汉诺塔汉诺塔编程代码代写

汉诺塔的C语言代码怎么写啊

python汉诺塔非递归

python3汉诺塔简单实现代码

汉诺塔问题的详解-附代码

汉诺塔(代码记录+注释)