1. 程式人生 > >程式設計演算法基礎

程式設計演算法基礎

計算機的優勢:計算速度
最笨的計算方法
-直接列舉每種可能的情況
-情況數不是天文數字就行
-要做到不遺漏
-最好不能重複
雞兔問題示例
• 有雞兔共50 頭
• 共有腳120 只
• 問雞兔分別的數量?
• X+y = 50, 2x + 4y = 120
• 計算機不是數學家,不會自己解方程。

public class T1
{
    public static void main(String[] args)
    {
        int HEAD = 50;
        int FOOT = 120;

        // x: 雞數, y: 兔數
        for
(int x=0; x<HEAD; x++){ int y = HEAD - x; if(x * 2 + y * 4 == FOOT){ System.out.println("x=" + x + ",y=" + y); break; } } } }

韓信點兵問題
• 韓信知道部隊人數大約1000 多,具體數字
不詳。
• 使用如下辦法
– 5人一組 餘 1
– 7人一組 餘 2
– 8人一組 餘 3
• 考慮所有可能的人數 1000 - 2000

public class T2
{
    public static void main(String[] args)
    {
        for(int i=1000; i<2000; i++){
            if(i%5==1 && i%7==2 && i%8==3) System.out.println(i);
        }
    }
}