Java解决百钱买百鸡问题(穷举法)

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.运行截图


在这里插入图片描述

  • 15
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值