程式設計演算法基礎
阿新 • • 發佈:2019-02-12
計算機的優勢:計算速度
最笨的計算方法
-直接列舉每種可能的情況
-情況數不是天文數字就行
-要做到不遺漏
-最好不能重複
雞兔問題示例
• 有雞兔共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);
}
}
}