代写C程序、自动贩卖机C程序代写、代做C语言程序作业

问题描述

假设在某国存在[1,x1,x2,x3,...,xn]多种货币,该国的自动贩卖机在找零时要遵循一个原则——“找零的总张数最少”。那么,该如何编写程序,帮助自动贩卖机自动
找零呢?

问题分析

解决这一问题的最直接思路是穷举法。假设需要找零Y元,那么就通过所有的小于Y的货币,列举出找零的所有方案,进而比较哪个总张数最少。这种思路需要在计算中

蕴含有大量的重复,时间复杂度极大。
类似问题的一个有效解法是使用动态规划的思想来处理。

求解找零所需要最少货币数

以面值为1,5,10,25的货币为例:

解决这一问题的关键在于,利用类似的等式,不断缩小问题的规模。当问题缩小为“需要多少张货币来找0元”时,问题的答案显然是0。
我们需要额外做的就是创建一个列表,用以保存比要计算的找零需求更小的需求。

# need_change 为需要找零的金额,
# currency_list 为该国货币的面值列表,
# num_list 为需要找零的最少货币数目, num_list的长度至少为(need_change+1)
def giveChange(need_change, currency_list, num_list):
for change in range(need_change+1): #从0开始计算最少需要的货币数
for currency in currency_list: #遍历每一种货币
if (change-currency >= 0) and (num_list[change-currency]+1<num_list[change]): #计算最少货币需求数
num_list[change] = num_list[change-currency] + 1
return

def main():
need_change = 63
currency_list = [1,5,10,21,25]
num_list = list(range(need_change+1)) #初始化num_list为0到need_change,共(need_change+1)个数
giveChange(need_change, currency_list, num_list)
print("%d 需要 %d 个货币来找零"%(need_change, num_list[need_change]))
if __name__ == "__main__":
main()
运行结果为:

63 需要 3 个货币来找零
仅仅输出了正确的货币数目是不够的,我们还需要输出具体是哪些面值的货币。

自动找零问题的解决

如同常见的,最短路径的记录一样。为输出具体是需要找哪些面值的货币的零钱,我们需要再上一步骤的基础上记录下每步求解最小化使用的货币。
为此,我们需要在添加一个列表,用以记录这个数值。

# need_change 为需要找零的金额,
# currency_list 为该国货币的面值列表,
# num_list 为需要找零的最少货币数目, num_list的长度至少为(need_change+1)
# used_list 为需要找零的最少货币数目, 长度与num_list相同
def giveChange(need_change, currency_list, num_list, used_list):
for change in range(need_change+1): #从0开始计算最少需要的货币数
for currency in currency_list: #遍历每一种货币
if (change-currency >= 0) and (num_list[change-currency]+1<=num_list[change]): #计算最少货币需求数
num_list[change] = num_list[change-currency] + 1
used_list[change] = currency #记录消耗的货币
return

# 返回需要的货币
def showChange(need_change, used_list):
give_list = []
while need_change > 0:
give_list.append(used_list[need_change])
need_change -= used_list[need_change]
give_list.sort() #排序
return give_list

def main():
need_change = 64 #需要找零的钱数
currency_list = [1,5,10,21,25] # 该国的货币面值列表
num_list = list(range(need_change+1)) #初始化num_list为0到need_change,共(need_change+1)个数
used_list = list(range(need_change+1)) #初始化used_list为0到need_change,共(need_change+1)个数
giveChange(need_change, currency_list, num_list, used_list)
print("%d 需要 %d 个货币来找零"%(need_change, num_list[need_change]))
give_list = showChange(need_change, used_list)
print(give_list)

if __name__ == "__main__":
main()
计算结果为:

64 需要 4 个货币来找零
[1, 21, 21, 21]

http://www.daixie0.com/contents/13/1231.html

本团队核心人员组成主要包括硅谷工程师、BAT一线工程师,国内Top5硕士、博士生,精通德英语!我们主要业务范围是代做编程大作业、课程设计等等。

我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全  汇编语言 硬件编程 软件设计 工程标准规等。其中代写代做编程语言或工具包括但不限于以下范围:

C/C++/C#代写

Java代写

IT代写

Python代写

辅导编程作业

Matlab代写

Haskell代写

Processing代写

Linux环境搭建

Rust代写

Data Structure Assginment 数据结构代写

MIPS代写

Machine Learning 作业 代写

Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导

Web开发、网站开发、网站作业

ASP.NET网站开发

Finance Insurace Statistics统计、回归、迭代

Prolog代写

Computer Computational method代做

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected]  微信:codinghelp

原文地址:https://www.cnblogs.com/codinghelp/p/8875864.html

时间: 2024-10-12 20:37:36

代写C程序、自动贩卖机C程序代写、代做C语言程序作业的相关文章

自动贩卖机VS无人门店:谁是真正的零售新风口?

原本在线上不断发力,让实体店几乎凋敝的电商,却忽然对线下兴趣大增.阿里疯狂入股.收购线下商超:京东要在全国范围内开设百万家便利店,仅在农村就将开设50万家--这一股浪潮,或将直接改变整个百货零售行业接下来的走势.而同样是在个风口之下,倡导无人管理且自动化运行的贩卖机.门店等,似乎也有将成为新趋势的迹象. 而且关注这一趋势,并不是只有急于开辟线下战场的电商,还有积极转型的传统企业.而自动贩卖机和无人门店究竟谁是真正的零售风口,也将在短兵相接中逐渐展现自己的潜力.或许,在接下来,大众将迅速体验到二者

【python实例】自动贩卖机

1 # 所有消费记录 2 customer_bill = [] 3 4 # 零售 5 def sale(): 6 print("=" * 38) 7 print("1. 乌龙茶 20".center(30)) 8 print("2. 茉莉花茶 80".center(30)) 9 print("3. 绿茶 8".center(30)) 10 print("4. 红茶 4.5".center(30)) 11 p

自动贩卖机购买饮料

功能要求: (1)1,5,10元纸币或硬币 (2)饮料只有橙汁,椰汁,矿泉水,早餐奶,售价分别为3.5,4,2,4.5 (3)实现功能:用户投钱和选择饮料,并通过判断之后,给用户吐出饮料和零钱 思路1: (1)先选择商品 (2)先投币 缺陷:1次只能购买一瓶饮料 def vending_machine(): data = {'橙汁':3.5,'椰汁':4,'矿泉水':2,'早餐奶':4.5} choose = input('请输入你要购买的饮料或投入1,5,10元纸币或硬币:') # 先选择商品

02-第一个C语言程序

一. 开发工具的选择 1) 可以用来写代码的工具:记事本.UltraEdit.Vim.Xcode等 2) 选择Xcode的原因:苹果官方提供的开发利器.简化开发过程.有高亮显示功能 3) 使用Xcode新建一个C程序的源代码文件(拓展名为.c或者.C) u 打开Xcode u 新建文件 u 选择文件的类型 u 输入文件名和选择文件的存放目录 u 新建完毕 u 删掉文件里自动生成的所有内容,从零开始 二. 代码的编写 1. 程序结构 1) 先C程序的结构:由函数组成 u 任何一个C语言程序都是由一

葛军视频教程《windows程序设计》配套文章_1.1 从最经典的“hello world”C语言程序说起

第一章 编写第一个Windows应用程序 1.1 从最经典的"hello world"C语言程序说起 本文视频教程地址: 优酷网(超清):http://v.youku.com/v_show/id_XNjkwMjgwNzE2.html 土豆网(超清.原画):http://www.tudou.com/programs/view/NV1scXZCbJ8/ 备受全世界程序员青睐的一本书是<The C Programming Language>(中文名<C语言程序设计>)

&lt;01&gt;主函数分析+创建一个新的Target+C语言程序执行流程

1.C语言的源程序的后缀:.c格式 2.C语言源程序: 1)由函数构成 2)在一个程序中,只有一个主函数(主函数由系统调用) 3)函数只有被调用的时候,才执行 4)如果没有主函数程序无法运行 5) C语言中语句结束一定要有分号 3.主函数的写法: int main(){ printf("hello world"); return 0; } 4.C语言程序的执行 1)command+r 2)点击左上角的 三角 符号 //Program ended with exit code: 0  程

李洪强iOS开发之C语言程序编译过程

汇编语言 指令用特定的名字来标记,这就是汇编语言 人比较容易看懂汇编语言 汇编直接和程序一一对应的 有汇编器把程序翻译成机器码 把高级语言编译成计算机识别的语言 程序编译过程 命令行 UNIX 系统中自带了C语言的编译器,编译器的名字叫CC CC 的含义是C Compler Linux系统是一个开源的,它自带的C编译器叫GCC GCC 不仅可以编译C 还可以编译Python 和OC MAC OS 的编译器是苹果公司自己研发的 Clang 在用CC或者GCC 的命令的时候,本质是调用了clang

最简单的C语言程序

声明:本人知识有限,文章可能有误或不全面,望指正并讨论! 最简单的C语言程序,应该就是一个main函数,而main里什么也不做了.如下: C文件main.c: int main() {     return 0; } 在 unix/linux下编译,后生成可执行程序main,并执行main: # cc -Wall -o main main.c # ./main # 程序无输出. 这是一个最简单的C语言程序了,但虽然是最简单,也有值得注意的地方. 为什么会是main函数? 因为main函数是链接生

C语言--从语言程序

一.代码的编写 1.程序结构 1> C语言程序的结构:由函数构成 *任何一个c语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”.所以,我们可以说C语言程序是由函数构成的. 2> 函数相关概念 *函数名:一个程序中由无数个函数组成,每个函数都有自己的名称 *函数体:返回值类型 函数名(形参列表){ 函数体 } *函数调用:根据函数名就可以调用相应的函数,执行相应的功能 3> C语言程序入口 *C语言程序的入口是main函数 *不管整