直接解的問題: * 寫一程式輸入三角形的三邊長, 然後判斷是銳角三角形? 直角? 鈍角? * 寫一程式輸入 n 然後印出 n 階魔方陣(magic square) * 不可使用內建三角函數, 寫一程式輸入 x 然後算出 sin(x) 以及 cos(x) (x 為弳度量) 多種解法: * 寫一程式輸入 n 然後印出 n 階巴斯卡三角形 (Pascal Triangle) * 寫一程式輸入 m, n 然後印出 C(m, n) --- 即 m 個中取 n個有幾種可能的答案 以下的問題如果用 greedy 可能會無解, 用 dynamic programming 技巧才一定有解! Problem: 寫一程式解找錢找出最少個銅板的問題 coin1.c -- 用 greedy method 以下用 dynamic programming coin2.c coin3.c coin4.c 類似問題: Problem: 寫一程式解最少張郵票的問題 程式要先讓 user 輸入幾種郵票以及各種郵票的面額 然後讓 user 輸入要買多少錢的郵票, 算出郵票張數最少的組合並印出 要一直處理到 user 輸入 <= 0 的值或是大於 999 的值才結束 輸入範例: 6 1 2 5 10 25 50 7 20 21 63 100 200 0 第二組範例: 6 1 2 3 10 21 50 7 20 21 63 100 200 0 為什麼叫做 Dynamic Programing (動態規劃)? 因為這方法是用來解決循序性多階段決策, 第一個決策會影響下一個決策, ... 所以叫做"動態規劃"。 以下是我從網路上六篇中英文文章剪貼而成的, 有興趣的就加減看一看!!! http://www.csie.nctu.edu.tw/~tsaiwn/programming/dynamic.txt 阿如果英文看不懂就查字典, 沒帶字典的可以查網路上的字典! 啥? 不知道哪裡有網路上的字典? 用 www.google.com 查一查就有一堆啊! ================== ** 0/1 knapsack problem