漢諾塔的 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+ 瀏覽量

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告

© . All rights reserved.