應用-河內塔.pptVIP

  • 4
  • 0
  • 约3.06千字
  • 约 24页
  • 2016-12-28 发布于天津
  • 举报
河內塔(Hanoi)問題 河內塔是由三根柱子,和n個不同直徑的圓盤所組成,它的遊戲方法是,將這n個圓盤由其一個柱子,全部搬至另一個柱子上,它的遊戲規則如下: ? 在搬動的過程中,直徑大的一定要在直徑小的圓盤下面。 ? 一次只能搬動一個圓盤,且圓盤只能在這三個柱子之間移動,不得超出範圍。 ? 演算法:虛擬碼 若有k個圓盤,則圓盤移動的總次數為: 2k-1+2k-2+…+2k-k=2k-1 設三個木樁為a 、 b 、 c,數量為n,而函式則為Hanoi (n , a , b , c) 當N為1時表示只要再移動一次就完成工作,也就是只要把a移到c就完成工作。 當N不為1時,作2個動作 1.執行Hanoi(n-1,a,c,b) 2.執行Hanoi(n-1,b,a,c) void Hanoi(int n , a, b,c) { if (n ==1) 列印 Move disk 1 form a to c; else { Hanoi(n-1,a,b,c); 列印Move disk n form a to c; Hanoi(n-1,b,c,a); 列印 Move disk 1~n-1 form b to c } } C語言:程式碼 #include stdio.h //#define SHOW_DETAILS #ifdef SHOW_DETAILS int Max_Disks

文档评论(0)

1亿VIP精品文档

相关文档