百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
public class TestChicken{ //O(n^2) public static void Demo1(){ for(int x = 1 ; x < 20 ; x++){ for(int y = 1 ; y < 33 ; y ++){ int size = 100 - x - y ; if((size%3==0) && (5*x + 3*y + size/3 == 100) ){ System.out.PRintln("公鸡:" + x + ",母鸡:" + y + ",小鸡:" + size ) ; //公鸡:4,母鸡:18,小鸡:78 //公鸡:8,母鸡:11,小鸡:81 //公鸡:12,母鸡:4,小鸡:84 } } } } /* * * 根据数学公式 5x + 3y + z/3 = 100 ; x + y + z = 100 * 得到关于x和y的关系式。简化流程 */ //O(n) public static void Demo2(){ int y = 0 ; int z = 0 ; for(int x = 1 ; x < 20 ; x ++){ y = 25 - 7 * x / 4 ; z = 100 - y - x ; if((y > 0) && (z%3==0) && (5*x + 3*y + z/3 == 100) ){ System.out.println("公鸡:" + x + ",母鸡:" + y + ",小鸡:" + z ) ; //公鸡:4,母鸡:18,小鸡:78 //公鸡:8,母鸡:11,小鸡:81 //公鸡:12,母鸡:4,小鸡:84 } } }}参考:http://www.cnblogs.com/huangxincheng/archive/2012/08/05/2624156.html
新闻热点
疑难解答