第二週專案3-體驗複雜度(2)漢諾塔
阿新 • • 發佈:2019-02-20
問題及程式碼:
/* *煙臺大學計算機與控制工程學院 *檔名稱:lulu.cpp *作 者:蘆亞茹 *完成日期:2015年9月13日 *問題描述:漢諾塔 *輸入描述:無 *程式輸出:移動的次數 */ #include <stdio.h> #define discCount 4 long move(int, char, char,char); int main() { long count; count=move(discCount,'A','B','C'); printf("%d個盤子需要移動%ld次\n", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } }
執行結果:
知識點及總結:
採用了遞迴演算法,難度在於指數級的運算
學習心得:
進一步練習了遞迴演算法,體驗了複雜度。