Java解决百钱买百鸡问题(穷举法)
1. 百钱买百鸡
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
意思就是公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡, 其中公鸡,母鸡,小
鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
2.问题分析
分析(枚举法)
设x为公鸡个数,y为母鸡个数,z为小鸡个数。
如果100钱全部都买公鸡,最多可以买20只,所以第一个循环x的范围最大是20.
如果100钱全部都买母鸡,最多可以买33只,所以第二个循环y的范围最大是33.
枚举出买各种鸡的个数,算出总钱数是否等于100.
小鸡的数量:z = 100 - x - y ;
条件:
5x+3y+z/3 == 100 并且 z % 3 == 0
3.代码实现
class ChickenNumTest{
public static void main(String[] args){
//定义公鸡,母鸡,小鸡的 变量
//int x,y,z ;
//for循环
for(int x = 0; x < 20 ; x ++ ){//穷举公鸡
for(int y = 0 ; y < 33 ; y ++){//穷举母鸡
//小鸡数量
int z = 100 - x - y ;
//满足条件
if((5*x+3*y+z/3)==100 && (z % 3 ==0) ){
System.out.
println("公鸡有:"+x+"只"+",母鸡有:"+y+"只"+",小鸡有:"+z+"只") ;
}
}
}
}
}
3.运行截图