import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int cnt_male=0; int cnt_female=0; int cnt_child=0; while (in.hasNextInt()) { cnt_child=in.nextInt(); for(int i=0;i<34;i++){ cnt_child=i*3;//鸡雏只能是3的倍数个 for(int j=0;j<100;j++){ cnt_male=j;//公鸡个数 cnt_female=100-cnt_child-cnt_male;//母鸡个数 if(cnt_female<0){ continue; } if(5*cnt_male+3*cnt_female+i==100){ System.out.println(cnt_male+" "+cnt_female+" "+cnt_child); } } } } } }
先上代码.由于鸡雏只有是3的整数倍的时候才能确保结算价格是整数,故第一层循环遍历鸡雏个数.第二层循环遍历公鸡或者母鸡个数都可以,反正有总数100这个约束.此处要避免出现另一种鸡为负数的情况,使用continue跳入下次循环加速求解.最后把筛选出的结果输出.