汉诺塔的 C 语言程序


汉诺塔是一个数学游戏。它包括三个柱子和一些不同大小的圆盘,这些圆盘可以滑到任何一个柱子上。游戏开始时,圆盘按大小顺序整齐地叠放在一个柱子上,最小的圆盘在最上面。我们需要将这些圆盘移动到第三个柱子上,使其保持相同的顺序。

游戏的目标是将整个圆盘堆栈移动到另一个柱子上,遵循以下简单规则:

  • 每次只能移动一个圆盘。

  • 每次移动都包括从一个堆栈的顶部取下最上面的圆盘,并将其放在另一个堆栈的顶部,也就是说,只有当圆盘位于堆栈的最上面时才能移动它。

  • 任何圆盘都不能放在比它小的圆盘上面。

示例

输入 - 3

输出 - A 到 B

              A 到 C

             B 到 C

            A 到 B

            C 到 A

            C 到 B

A 到 B 解释 - 使用递归函数并解决汉诺塔问题。

示例

#include<stdio.h>
void TOH(int n,char x,char y,char z) {
   if(n>0) {
      TOH(n-1,x,z,y);
      printf("
%c to %c",x,y);       TOH(n-1,z,y,x);    } } int main() {    int n=3;    TOH(n,'A','B','C'); }

输出

A to B
A to C
B to C
A to B
C to A
C to B
A to B

更新于: 2020-07-01

13K+ 浏览量

开启你的 职业生涯

完成课程获得认证

开始学习
广告