分析
一只鸡翁价值5,100最多买20只鸡,假设可以买x只鸡翁。
一只鸡母价值3,100最多买33只鸡,假设可以买y只鸡母。
三只鸡雏价值1,100最多买300只鸡雏,假设可以买z只鸡雏。
并且是100块钱买一百只鸡。
则有以下表达式成立。
鸡的价值为100
5x + 3y + z/3 = 100;
鸡的只数
x + y + z = 100;
==>>> 第一个方程式乘以3
15x + 9y + z = 300;
x + y + z = 100;
===>>>两个方程式相减,消除z
14x + 8y = 200 ;
===>
7x + 4y = 100;
因为又满足价值小于 100,假设全部买鸡翁。则最多买 100/7 = 14只。所以 0<=x<=14
根据x求带入方程式7x + 4y = 100;计算出y。根据x ,y带入方程式x + y + z = 100;计算出z;
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 鸡翁值5, 一百块最多买20只 鸡翁买x只
// 鸡母值3, 一百块最多买33只 鸡母买y只
// 鸡雏三值1, 一百块最多买300只 鸡雏买z只
Scanner in = new Scanner(System.in);
// 买x鸡翁,y只鸡母,z只鸡雏
//5x+3y+z/3=100 ==> 15x + 9y + z = 300
//x+y+z==100确定 // ==> 14x + 8y = 200 ==> 7x + 4y = 100 ==> y = (100 - 7x)/4
while (in.hasNextInt()){
int n = in.nextInt();
for (int x = 0; x <= 14; x++) {
if ((100 - 7* x) % 4 == 0){
int y = (100-7*x) / 4;
int z = 100 - x - y;
System.out.println(x + " " + y + " " + z);
}
}
}
}
}



京公网安备 11010502036488号