问题描述百钱买百鸡的问题算是一套非

问题描述

百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,
用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class {
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