汉诺塔递归实现

原创 2016年06月01日 18:06:09
#include<stdio.h>
#include<stdlib.h>
int pickTopDisk(char *current,char x)
{
    int i=0;
    while(current[i]!=x)
        i++;
        return i;
}
void hanoi(char *current,int n,char A,char B,char C)
{
    static int count=0;
    int i=0;
    if(n==1)
    {
        i=pickTopDisk(current,A);
        current [i]=C;
        count++;
        printf("move %d disk %d: %c->%c\n",count,i+1,A,C);
        return;
    }
    hanoi(current,n-1,A,C,B);
    current[n-1]=C;
    count++;
    printf("move %d disk %d: %c->%c\n",count,n,A,C);
    hanoi(current,n-1,B,A,C);
}
int main(int argc,char** argv)
{
    char current[]={'A','A','A','A'};
    char A='A',B='B',C='C';
    hanoi(current,4,A,B,C);
    return (EXIT_SUCCESS);
}



汉诺塔递归C++实现

  • 2013年07月09日 10:44
  • 759B
  • 下载

汉诺塔的递归实现

  • 2012年06月20日 10:25
  • 34KB
  • 下载

递归实现汉诺塔原理及核心代码

//递归解决汉诺塔问题 /*现在有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状 * 叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子c上, * 并且每次移动同一根柱子上...

递归实现汉诺塔

  • 2017年12月06日 20:26
  • 20KB
  • 下载

Java经典例题之汉诺塔<递归实现>

首先我们先来看看思路(先别看代码): 1、假如A上的金片个数是1: 这个时候直接从A移动到C; 得到的步骤是:A->C 2、假如A上的金片个数是2: 首先将A最上面的1个金片移...

汉诺塔递归实现(C语言)

  • 2012年10月28日 15:47
  • 511B
  • 下载

用递归实现汉诺塔问题

  • 2008年12月21日 14:28
  • 277B
  • 下载

对于汉诺塔递归的实现和步骤跟踪

对于汉诺塔的理解,教材上解说的很直白,但不是很好理解,在参考了期待秋天的叶博主的“经典汉诺塔实现”之后,对汉诺塔递归思想的理解,有很大的提高。               设置参数:from为移动...

mfc(递归实现汉诺塔)

  • 2008年09月30日 20:27
  • 1.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汉诺塔递归实现
举报原因:
原因补充:

(最多只允许输入30个字)