河内塔的C计划

在本教程中,我们了解到 tower of hanoi 数学游戏或拼图,还使用递归,查找解决方案,应用程序和图形表示的C程序。
 
它包括许多不同尺寸的圆盘,其可以在三个杆(PEG)中的任何一个上滑动。游戏从一根杆上的堆叠中按升序排列的磁盘开始,但确保最小的磁带,从而使圆锥形如下图所示。

河内塔的C计划


游戏/拼图的一些规则将整个整个堆栈移动到另一个杆,规则 将所有磁盘移动到3个塔,但您不能在较小的磁盘上放置更大的磁盘。 

规则

  1. 一次只有一个磁盘移动。
  2. 只有 ”最佳“可以删除磁盘。
  3. 在每个运动中,从一个塔到另一塔的顶部磁盘到另一个塔顶,但您不能在较小的磁盘上放置更大。
有三个磁盘,游戏或拼图可以在七个移动中解决。最小nu.解决问题所需的动作MBER河内的大家 is 2n-1,其中n是磁盘的数量。

下面我分享了河内塔的图形表示。所以,你很容易理解数学难题。

 
河内塔在c


河内塔在c

在这里我分享了 使用递归的河内C节目塔 为了 数学游戏/拼图。

源代码 

#include<stdio.h>

void hanoi(int n, char source_rod, char dest_rod, char aux_rod);

void main()

{

 int n;

 printf("输入磁盘的数量:\t");

 scanf("\n%d",&n);

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

 return;

}

void hanoi(int n, char from_rod, char to_rod, char aux_rod) 

{ 

    if(n<=0)

    {

      printf("Wrong Number of disk\n");

    }

    else if (n == 1) 

    { 

        printf("\n Move disk 1 from %c to %c", from_rod, to_rod); 

        return; 

    } 

    else

    {

    hanoi(n-1, from_rod, aux_rod, to_rod); 

    printf("\n Move disk %d from %c to %c", n, from_rod, to_rod); 

    hanoi(n-1, aux_rod, to_rod, from_rod);

    }

}

输出

输入磁盘的数量:  3


 将磁盘1从a移动到c

 将磁盘2移动到b

 将磁盘1从C移动到B.

 将磁盘3移动到C到C.

 将磁盘1从b移动到a

 将磁盘2移动到C到C.

 将磁盘1从a移动到c

-----------------------------------------

在上面的文章中,我们使用递归,确定解决方案,应用程序和图形表示,在C中学于C的河内塔。

1条评论:

如果您有任何疑问,请告诉我

供电 博主.