案例:百钱百鸡
需求:我国古代数学家张邱建在《算经》一书提出数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁,鸡母,鸡雏各几只?
分析:
假设鸡翁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); } } } } }