今天,同事提到百钱买百鸡问题,虽然这是刚学习编程的基础 ,但今天还是答的有点吃累,最终考虑到如果解决方法。
public class TryTest {
public static void main(String[] args) {
for (int i = 0; i <= 25; i++) {
for (int j = 0; j <= 14; j++) {
if (4 * i + 7 * j == 100) {
System.out.print("大鸡数 : " + i);
System.out.print("中鸡数 : " + j);
System.out.println("小鸡数 : " + (100 - i - j));
}
}
}
}
}
解释:
if (4 * i + 7 * j == 100) 关于这句,是解下面方程组得到的。
i代表大鸡,j代表中鸡,k代表小鸡
i+j+k=100①
5i+3j+k/3=100②
解①②方程组最终得到7i+4j=100
for (int i = 0; i <= 25; i++) ,这个最大是25,用方程组得到的结果,假设j=0,i解得25
for (int j = 0; j <= 14; j++),这个最大是14,用方程组得到的结果,假设i=0,j解得约等于14