题目描述:假设有100钱刚好能买100只鸡,其中公鸡5钱一只,母鸡3钱一只,小鸡1钱3只,问公鸡母鸡小鸡各多少只?
这里使用了for循环和while循环遍历结果集;
/** * 百钱百鸡问题 * @author juihai * @date 2021/7/19 */ public class HundredMoneyHundredChickenTest { /** * 假设有100钱刚好能买100只鸡,其中公鸡5钱一只,母鸡3钱一只,小鸡1钱3只,问公鸡母鸡小鸡各多少只? * */ public static void main(String[] args) { //实现1 solutionV1(); //实现2 solutionV2(); } private static void solutionV1(){ int count = 0; int z,total = 0; //公鸡为x,则x取值为0~20 for(int x=0;x<=20;x++){ //母鸡为y,则y取值范围为0~33 for(int y=0;y<=33;y++){ count++; //小鸡为z,取值为100-x-y z = 100 -x -y; if(z%3==0 && 5*x+3*y+z/3==100 ){ total++; // System.out.println("公鸡:" + x +"只,母鸡:"+ y +"只,小鸡:"+z+";共执行:"+count); break; } } } System.out.println("共执行:"+count+"次;共"+total+"种结果。"); } private static void solutionV2(){ //设公鸡为x,取值范围为0~20 //母鸡为y,则y取值范围为0~33 //小鸡为z,取值为100-x-y int z=0,count=0,total=0; int x=0; while(x<=20){ int y=0; while (y<=33){ count++; z = 100 -x -y; if(z%3==0 && 5*x+3*y+z/3==100){ total++; // System.out.println("公鸡:" + x +"只,母鸡:"+ y +"只,小鸡:"+z+";共执行:"+count); break; } y++; } x++; } System.out.println("共执行:"+count+"次;共"+total+"种结果。"); } }
输出内容:
共执行:640次;共4种结果。
共执行:640次;共4种结果。