美文网首页
C语言-汉诺(Hanoi)塔问题-递归实现

C语言-汉诺(Hanoi)塔问题-递归实现

作者: 广陵周惊蛰 | 来源:发表于2020-01-10 21:36 被阅读0次

问题描述:汉诺(Hanoi)塔问题-递归实现

源代码:

/*汉诺(Hanoi)塔问题-递归实现*/
#include<stdio.h>
void hanoi(int n,char a,char b,char c);
int main(void)
{
    int n;
    
    printf("input the number of disk:");
    scanf("%d",&n);
    printf("the steps for %d disk:\n",n);
    hanoi(n,'a','b','c');
    
    return 0;
 } 
 
 /*搬动n个盘,从a到b,c为中间过渡*/
void hanoi(int n,char a,char b,char c)
{
    if(n==1)
        printf("%c-->%c\n",a,b);
    else{
        hanoi(n-1,a,c,b);
        printf("%c-->%c\n",a,b);
        hanoi(n-1,c,b,a);
    }
}

运行结果:

汉诺(Hanoi)塔问题-递归实现

程序算法:

hanio(n个盘,A->B)
{
    if(n==1)
    直接把盘子A->B;
    else{
        hanio(n-1个盘,A->C);
        把n号盘子A->B;
        hanio(n-1个盘,C->B);
    }
}

程序参数:

  • 输出大小: 149.390625 KiB
  • 编译时间: 0.31s

相关文章

网友评论

      本文标题:C语言-汉诺(Hanoi)塔问题-递归实现

      本文链接:https://www.haomeiwen.com/subject/itvmactx.html