#Java编程题-百钱百鸡

问题:

百钱百鸡问题。用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种方式购买!

转载于:https://www.cnblogs.com/ckhuang/p/3605055.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值