21xrx.com
2024-11-22 12:48:51 Friday
登录
文章检索 我的文章 写文章
C语言汉诺塔递归算法(附代码实例)
2023-06-17 20:10:25 深夜i     --     --
汉诺塔 递归算法 C语言

汉诺塔是一道经典问题,也是递归算法的代表。在c语言中,我们可以使用递归算法来求解汉诺塔问题。具体实现过程和代码如下:

实现过程:

1. 如果只有一个盘子,直接将它从A柱子移动到C柱子上。

2. 如果有两个及以上的盘子,先将前n-1个盘子借助C柱子移动到B柱子上,再将第n个盘子直接从A柱子移动到C柱子上,最后将前n-1个盘子借助A柱子移动到C柱子上。

代码实例:


void hanoi(int n, char a, char b, char c) {

  if (n == 1) {

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

    return;

  }

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

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

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

}

在主函数中,我们可以调用hanoi函数来实现汉诺塔问题的求解:


int main() {

  int n = 3;

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

  return 0;

}

  
  

评论区

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