回覆列表
  • 1 # 使用者8125135614807

    1 // 漢諾塔

    2 # include <stdio.h>

    3 void hanoi ( int n, char a, char b, char c ) //這裡代表將a柱子上的盤子藉助b柱子移動到c柱子

    4 { if (1 == n) //如果是一個盤子直接將a柱子上的盤子移動到c

    5 {

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

    7 }

    8 else

    9 {

    10 hanoi ( n-1, a, c, b ) ; //將a柱子上n-1個盤子藉助c柱子,移動到b柱子

    11 printf("%c-->%c\n",a , c) ; //再直接將a柱子上的最後一個盤子移動到c

    12 hanoi ( n-1, b, a, c ) ; //然後將b柱子上的n-1個盤子藉助a移動到c

    13 }

    14 }

    15 int main ()

    16 { int n ;

    17 printf( "Input the number of diskes:") ;

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

    19 hanoi ( n, "A" , "B" , "C" ) ;

    20 return 0;

    21 }

    複製程式碼

  • 中秋節和大豐收的關聯?
  • 劍網三95級大戰梵空禪院怎麼打?