21xrx.com
2024-12-23 01:39:26 Monday
登录
文章检索 我的文章 写文章
C语言实现汉诺塔 代码分享
2023-06-13 01:43:38 深夜i     --     --
汉诺塔问题 递归 C语言

汉诺塔问题是一种经典的递归问题,在计算机科学中有着广泛的应用。这篇文章将为大家分享使用C语言实现汉诺塔问题的程序代码。

汉诺塔问题的原理很简单,即将若干个盘子从一个柱子上移到另一个柱子上,每次只能移动一个盘子且不能将大盘子放在小盘子上面。我们可以通过递归思想来解决这个问题,具体实现过程如下:

1.设置三个柱子A、B、C,初始时所有盘子都在A柱子上

2.将A柱子上最上面的盘子移动到B柱子上

3.将A柱子上除最上面盘子外的所有盘子移动到C柱子上

4.将B柱子上所有盘子移动到C柱子上

5.递归执行以上操作,直到将所有盘子移动到C柱子上

下面是C语言实现汉诺塔问题的代码:


#include

void move(int n, char from, char to, char temp)

{

  if(n == 1)

  {

    printf("%c -> %c\n", from, to);

    return;

  }

  move(n-1, from, temp, to);

  printf("%c -> %c\n", from, to);

  move(n-1, temp, to, from);

}

int main()

{

  int n;

  printf("请输入盘子个数:");

  scanf("%d", &n);

  move(n, 'A', 'C', 'B');

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复