课程设计/动态规划/JAVA/最小购物费用

这篇博客介绍了一个使用Java解决的动态规划问题,旨在找出购买花朵和花瓶的最低费用。通过用户输入的商品信息和优惠方案,利用数组ArrayList和LinkedList存储数据,HashMap保存优惠价格。核心计算部分涉及多层循环,检查购买数量是否满足套餐条件,以达到最优化的费用。最终示例显示,通过应用优惠,原本16元的购物费用降至14元。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采用java语言,使用了集合(数组+链表+哈希表)来进行存储.动态规划.(XATU)

问题陈述:

在这里插入图片描述

一朵花的价格是2元。一个花瓶的价格是5 元。为了吸引顾客,商店提供了一组优惠商品价

商品有2种,依次分别为编号,需要购买的数量,单价
优惠方案有2种,三朵花的价格是5元而不是6元.购买1个花和两个花瓶只需要十元.

存储思路

数组ArrayList里面存储的都是LinkedList
数组存放对应的优惠方案,每个位置存储的链表中存储的都是Entry{A,B}
A是在该优惠组合中,商品的编号,B是需要的数量
也就是LinkList中放的是一个接一个的Entry,就是在该优惠组合中队各种商品数目的要求.
在这里插入图片描述
HashMap中存储的键值对,key对应的是优惠方案的ID,value是优惠方案的价格.

一、用户输入

先输入商品信息,然后输入优惠套餐.

    public void getRequest() {
        //让用户输入商品信息
        System.out.print("请输入商品的总个数:");
        Integer num = in.nextInt();
        Integer i;//得到用户输入的信息

        while (num > 0){
            System.out.println("请输入商品ID:");
            i = in.nextInt();
            Integer id = i;
            System.out.println("请输入商品需求数量:");
            i = in.nextInt();
            request[id-1] = i;
            System.out.println("请输入商品单价:");
            i = in.nextInt();
            price[id-1] = i;
            System.out.println("商品ID "+id+" 需求数量 "+request[id]+" 单价 "+price[id]+" 添加成功!!!");
            num--;//num减少一次,还需要输入num-1个商品;
        }

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值