汉诺塔的 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
广告