问题:

百钱百鸡问题。用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。

自己的实现,没有什么数据结构,算法,求大神指点!!

package com.ckhuang.maven.confused;

/**
* 程序功能:百钱百鸡问题(一百元买一百只鸡)。<br/>
* 用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,<br/>
* 编程计算共有几种买法(要求每种鸡至少要买1只)。
*
* @author ck.huang
*
*/
public class HundredChicken { public static final int ROOSTER_PRICE = 5; public static final int HEN_PRICE = 3; public static final int BIDDY_PRICE = 1; public static final int BIDDY_NUM_PER_YUAN = 3; /**
* @param args
*/
public static void main(String[] args) {
int totalMoney = 100;
int waysCount = 0;
int maxRooster = (totalMoney - HEN_PRICE - BIDDY_PRICE) / ROOSTER_PRICE;
int maxHen = 0;// 最大购买母鸡数
int biddyNum = 0;// 购买雏鸡数量 for (int i = 1; i <= maxRooster; i++) {
maxHen = (totalMoney - (ROOSTER_PRICE * i) - BIDDY_PRICE) / HEN_PRICE;
for (int j = 1; j <= maxHen; j++) {
biddyNum = (totalMoney - (ROOSTER_PRICE * i) - HEN_PRICE * j) / BIDDY_PRICE;
if (i + j + (biddyNum * BIDDY_NUM_PER_YUAN) == 100) {
System.out.println("购买公鸡:" + i + "只(" + (ROOSTER_PRICE * i) + "),购买母鸡:" + j + "只("
+ (HEN_PRICE * j) + "钱),购买雏鸡:" + (biddyNum * BIDDY_NUM_PER_YUAN) + "只(" + biddyNum
+ "钱)");
waysCount++;
}
}
}
System.out.println("共有:" + waysCount + "种方式购买!");
} }

结果:

购买公鸡:4只(20),购买母鸡:18只(54钱),购买雏鸡:78只(26钱)
购买公鸡:8只(40),购买母鸡:11只(33钱),购买雏鸡:81只(27钱)
购买公鸡:12只(60),购买母鸡:4只(12钱),购买雏鸡:84只(28钱)
共有:3种方式购买!

#Java编程题-百钱百鸡的更多相关文章

  1. java - 百钱百鸡小算法

    传送门: 袁咩咩的小小博客 百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的<算经>,这是古代著名数学家张丘建首次提出的.百钱百鸡问题原文如下: 鸡翁一,值钱五,鸡母一,值钱三,鸡 ...

  2. SDUST 软件工程2016-作业4-A 百钱买鸡问题

    解决百钱买鸡问题原本并不困难,关键的是这道题对其进行了升级,测试数据太大,传统的解法,像三重循环,二重循环都会导致超时. 这道题正确的解法应该是结合数学方程进行化简,将其转化为1层循环: x+y+z= ...

  3. 百钱白鸡(for循环的练习)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. C++扬帆远航——4(百钱百鸡)

    /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:baiji.cpp * 作者:常轩 * 完成日期:2016年3月 ...

  5. SYCOJ2205超级百钱百鸡

    题目-超级百钱百鸡 (shiyancang.cn) 百钱百鸡的加强版 百钱百鸡的话,因为是有范围,所以挨个挨个尝试即可,确定两个,即可确定第三个. 超级百钱百鸡,通过题目的描述,最后可以得到一个二元的 ...

  6. 50道经典的JAVA编程题 (11-15)

    50道经典的JAVA编程题 (11-15),新年的第一天,继续啦...\(^o^)/~,这50道题都跨年了啊...哈哈 [程序11] TestTN.java 题目:有1.2.3.4个数字,能组成多少个 ...

  7. 50道经典的JAVA编程题(汇总)

    这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...

  8. 50道经典的JAVA编程题(46-50)

    50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...

  9. 50道经典的JAVA编程题(41-45)

    50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...

随机推荐

  1. TestNG使用Eclipse建立Test Case - 就是爱Java

    除了JUnit可以进行单元测试外,还可以使用TestNG来撰写Test Case,这是另一种测试Framework,它是为更广泛的测试场合而设计,可以运行在没有修改过的JUnit测试,除非看到它们的i ...

  2. cf A. Down the Hatch!

    http://codeforces.com/contest/332/problem/A #include <cstdio> #include <iostream> #inclu ...

  3. universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法

    在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使 ...

  4. logstash tomcat catalina.out zabbix 插件不会引起崩溃

    input { file { type => "zj_api" path => ["/data01/applog_backup/zjzc_log/zj-api ...

  5. 转:使用linq to sql 随机取一行数据的方法

    原文地址:http://outofmemory.cn/code-snippet/1760/usage-linq-to-sql-suiji-take-yixing-data-method 虽然这看来已经 ...

  6. 专访OPPO李紫贵:ColorOS用户过千万 软硬融合生态版图初现

    专访OPPO李紫贵:ColorOS用户过千万 软硬融合生态版图初现 专访OPPO李紫贵:ColorOS用户过千万 软硬融合生态版图初现

  7. awk实践积累

    #cat iii |awk '{max=$2;min=$2;for (i=2;i<=NF;i++) if ($i>max) max=$i fi} {for (i=2;i<=NF;i+ ...

  8. ajax提交写法

    <script> /* ajax提交写法 */ function add_prize() { // var query={}; var query = new Object(); quer ...

  9. 仿糯米弹框效果demo

    代码例如以下: <!doctype html> <html lang="en"> <head> <meta charset="U ...

  10. 绘制更Smooth的UI

    以前很长一段时间,在自定义控制绘制时,只是简单的定义一个QPainter对象而开始绘画.经常会画一些圆角矩形,甚至是一些不规则的图形.对于不规则的图形来说,如果PS技术不好,或者mask制作的不好,常 ...