欢迎光临
我们一直在努力

国开(安徽开放)23春《Java语言程序设计》案例4:百元购物问题【标准答案】

可做奥鹏国开全部院校作业论文!答案请添加qq:599792888 或 微信:1095258436

案例4:百元购物问题

问题描述

妈妈给了小明100元,让小明到超市去买东西。超市里可乐每瓶5元,牛奶每瓶8元,矿泉水每瓶3元。如果要求每种商品至少买一个,请问最多有多少种购买方案呢?

 

实现思路

每种商品都是至少要买一个,但是每种商品最多可以购买的数量是可以计算出来的,就是100元除以商品单价的数量,所以每种商品最多可以购买的数量如下:

 

商品名称 购买最小数量/个 购买最大数量/个 商品总价/元

可乐 1 100/5 100

牛奶 1 100/8 100

汽水 1 100/3 100

在获取了各类商品的可购买数量范围之后,即可针对这三种商品的数量进行排列组合,这三种商品的购买数量需要满足一个条件就是总价不能超过100元,即遵守如下公式:

 

5*i + 8* j + 3* k<=1 00

 

其中,i为可乐的数量,j为牛奶的数量,k为汽水的数量。

 

剩下的工作就是按照排列组合的方式来实现这三种商品数量的组合,每种组合都是一个可能的方案,具体的情况如下:

 

商品组合 可乐 牛奶 汽水

1 1 1 1国开电大答案请进:opzy.net或请联系微信:1095258436

2 2 1 1

3 2 2 1

…………………………………………………

N i j j

上述的N代表最大购买数量组合数,i、j、k分别代表三种商品的购买数量。基于上述思路通过程序计算最终的组合数量和组合情况。

 

在程序中,可以通过循环的方式来实现输出各种排列组合的情况,每种商品都是一个循环,一共是三个循环机制。循环的初始条件是1,结束条件是达到了可乐/牛奶/汽水的购买最大限额,然后循环结束。在这些循环中还有一个约束条件,就是当购买的商品满足总金额不超过100时,才是有效的。

 

具体的实现代码如下:

 

完整的代码可以参考chapter3-workflow目录下的BuyThing100.java。

 

int planCount = 0; //方案数量

 

for (int i=1; i<=100/5; i++) {

 

for (int j=1; j<=100/8; j++) {

 

for (int k=1; k<=100/3; k++) {

 

if (5*i + 8*j + 3*k<=100) { //金额在100元之内

 

planCount++; //方案数量自增

 

System.out.println(“Plan:” + planCount + “, 可乐:” + i + “, 牛奶:” + j + “,汽水:” + k);

 

}

 

}

 

}

 

}

赞(0)
未经允许不得转载:奥鹏作业网 » 国开(安徽开放)23春《Java语言程序设计》案例4:百元购物问题【标准答案】

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址