百钱买百鸡

芯不動灬则卟痛 2020-08-02 11:43:30
题目描述:3文钱可以买1只公鸡,2文钱可以买1只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?

class Text{
public static void main(String[] args) {
//定义变量
//公鸡
int x=0;
//母鸡
int y=0;
//小鸡
int z=0;

for(x=0;x<=33;x++){//表示的是公鸡的范围
for(y=0;y<=50;y++){//表示的是母鸡的范围
//小鸡
z=100-x-y;
//保证小鸡被3整除
if(z%3==0){
//判断条件
if(3*x+2*y+(z/3)==100){
System.out.println("公鸡:"+x+",母鸡:"+y+",小鸡:"+z);

}
}
}
}
}
}
...全文
13349 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
那谁呀撒 2020-08-06
  • 打赏
  • 举报
回复
x+y+z=100 3x+2y+z/3=100 解方程,得到8x+5y=200 y=(200-8x)/5=40-8x/5 y是整数,则x是5的倍数 于是就有 x y z 0 40 60 5 32 63 10 24 66 15 16 69 20 8 72 25 0 75 以上的6种结果就是符合题目要求的答案 我会选择前两个方案,因为,买那么多公鸡有什么用???? 小鸡可以养,母鸡能下蛋,公鸡只会打鸣!!!
Motivation丶R 2020-08-05
  • 打赏
  • 举报
回复
暴力解: for(int z = 99;z <= 99 && z >= 3;z -= 3){ for(int y = 1;y <= 100 - z && y >= 1 && 100 - y - z >1;y++){ if(((100 - y- z ) * 3) + (y * 2) + (z/3) == 100){ int x = 100 - y - z; System.out.println("x:" + x + ",y:" + y + ",z:"+z +",total money :" +(3 * x + 2*y + z/3)); } } }
Lerbronjames 2020-08-04
  • 打赏
  • 举报
回复
算法可以进一步优化,y<=(100-3*x)/2
  • 打赏
  • 举报
回复
感谢,我是初学者,好多问题没考虑到
  • 打赏
  • 举报
回复
这么暴力的买鸡么?
医手 2020-08-03
  • 打赏
  • 举报
回复
引用 1 楼 小小的人儿居然已存在 的回复:
这么暴力的买鸡么?
经常看到编程题还用公式来算的,然后由于逻辑过于复杂,还列错公式了。 如果用公式的话,计算器就可以了,哪里还用得着计算机。计算机就是用来暴力枚举,以验证公式是否正确的
java小白0111 2020-08-03
  • 打赏
  • 举报
回复
不对 你这样写有问题 运行结果钱数不对 花超了

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧