首页 > 编程语言 > 详细

#Java编程题-百钱百鸡

时间:2014-03-18 06:31:33      阅读:469      评论:0      收藏:0      [点我收藏+]

问题:

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

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

bubuko.com,布布扣
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 + "种方式购买!");
  }

}
bubuko.com,布布扣

结果:

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

#Java编程题-百钱百鸡,布布扣,bubuko.com

#Java编程题-百钱百鸡

原文:http://www.cnblogs.com/ckhuang/p/3605055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!