案例:百錢百雞
需求:我國古代數學家張邱建在《算經》一書提出數學問題:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。
百錢買百雞,問雞翁
,雞母
,雞雛
各幾隻?
分析:
假設雞翁x隻,雞母y隻,雞雛z隻則有:
x+y+z=100
5*x+3*y+z/3=100
單看一種雞
,則有以下關系式
0<=x<=20
0<=y<=33
0<=z<=100
使用窮舉法羅列出x,y,z的值
思路:
1.第一層循環:用于表示雞翁的範圍,初始化表達式的變量定義為x=0,判斷條件是x<=20
2.第二層循環:用于表示雞母的範圍,初始化表達式的變量定義為y=0,判斷條件是y<=33
3.第三層循環:用于表示雞雛的變量z=100-x-y
4.判斷表達式z%3==0和表達式5*x+3*y+z/3=100是否同時成立,如果成立,輸出對應x,y,z的值,就是對應得雞翁,雞母,雞雛
public class Test05 {
public static void main(String[] args) {
//第一層循環:用于表示雞翁的範圍,初始化表達式的變量定義為x=0,判斷條件是x<=20
for (int x = 0; x < 20; x++) {
//.第二層循環:用于表示雞母的範圍,初始化表達式的變量定義為y=0,判斷條件是y<=33
for (int y = 0; y < 33; y++) {
//第三層循環:用于表示雞雛的變量z=100-x-y
int z = 100 - x - y;
// 判斷表達式z%3==0和表達式5*x+3*y+z/3=100是否同時成立,如果成立,輸出對應x,y,z的值,就是對應得雞翁,雞母,雞雛
if(z%3==0 && 5*x+3*y+z/3==100){
System.out.println(x+","+y+","+z);
}
}
}
}
}