Python算法100例-2.11 换分币

完整源代码项目地址,关注博主私信'源代码'后可获取

  • 1.问题描述
  • 2.问题分析
  • 3.算法设计
  • 4.确定程序框架
  • 5.完整的程序
  • 6.运行结果

1.问题描述

将5元的人民币兑换成1元、5角和1角的硬币,共有多少种不同的兑换方法。

2.问题分析

根据该问题的描述,可将该问题抽象为一个不定方程。

设变量x、y和z分别代表兑换的1元、5角和1角的硬币所具有的钱数(角),则由题目的要求,可得到如下的方程:

x+y+z=50

其中,x为兑换的1元硬币钱数,其可能的取值为{0,10,20,30,40,50};y为兑换的5角硬币钱数,其可能的取值为{0,5,10,15,20,25,30,35,40,45,50};z为兑换的1角硬币钱数,其可能的取值为{0,1,…50}。

3.算法设计

在问题分析中,我们得到了一个不定方程,显然该不定方程会有多组解。根据题意可知x、y和z的可能取值,将它们所有可能取值的组合代入方程中,能使该方程成立的那些解即为该问题的解。

为实现该功能,需要使用三个嵌套的for循环语句。

4.确定程序框架

程序流程图如图所示。

在这里插入图片描述

5.完整的程序

根据上面的分析,编写程序如下:

%%time
# 换分币

if __name__=="__main__":
    # 变量x、y和z分别代表兑换的1元、5角和1角的硬币所具有的钱数(角)
    count = 0                                                               # 计数器
    print("可能的兑换方法如下:")
    # x 为兑换的1元硬币钱数,可能的取值为{0,10,20,30,40,50}
    for x in range(0, 50+1, 10):
        # y为5角硬币钱数,其取值为{0,5,10,15,20,25,30,35,40,45,50}
        for y in range(0, 50-x+1, 5):
            # z为1角硬币钱数,其取值为{0,1,...50}
            for z in range(0, 50-x-y+1, 1):
                if(x + y + z == 50):
                    count += 1
                    if count % 3 == 0:              # 每3列一行
                        print(count, end="   ")
                        print("10*%d+5*%d+1*%d \t" % (x // 10, y // 5, z))
                    else:
                        print(count, end=" ")
                        print("10*%d+5*%d+1*%d \t" % (x // 10, y // 5, z), end=" ")
可能的兑换方法如下:
1 10*0+5*0+1*50 	 2 10*0+5*1+1*45 	 3   10*0+5*2+1*40 	
4 10*0+5*3+1*35 	 5 10*0+5*4+1*30 	 6   10*0+5*5+1*25 	
7 10*0+5*6+1*20 	 8 10*0+5*7+1*15 	 9   10*0+5*8+1*10 	
10 10*0+5*9+1*5 	 11 10*0+5*10+1*0 	 12   10*1+5*0+1*40 	
13 10*1+5*1+1*35 	 14 10*1+5*2+1*30 	 15   10*1+5*3+1*25 	
16 10*1+5*4+1*20 	 17 10*1+5*5+1*15 	 18   10*1+5*6+1*10 	
19 10*1+5*7+1*5 	 20 10*1+5*8+1*0 	 21   10*2+5*0+1*30 	
22 10*2+5*1+1*25 	 23 10*2+5*2+1*20 	 24   10*2+5*3+1*15 	
25 10*2+5*4+1*10 	 26 10*2+5*5+1*5 	 27   10*2+5*6+1*0 	
28 10*3+5*0+1*20 	 29 10*3+5*1+1*15 	 30   10*3+5*2+1*10 	
31 10*3+5*3+1*5 	 32 10*3+5*4+1*0 	 33   10*4+5*0+1*10 	
34 10*4+5*1+1*5 	 35 10*4+5*2+1*0 	 36   10*5+5*0+1*0 	
CPU times: user 1.21 ms, sys: 65 µs, total: 1.27 ms
Wall time: 1.11 ms

6.运行结果

由输出结果可知,可能的兑换方法有36种。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/426022.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【框架】Spring 框架重点解析

Spring 框架重点解析 1. Spring 框架中的单例 bean 是线程安全的吗? 不是线程安全的 Spring 框架中有一个 Scope 注解,默认的值是 singleton,即单例的;因为一般在 Spring 的 bean 对象都是无状态的(在生命周期中不被…

嵌入式Qt 对话框及其类型 QDialog

一.对话框的概念 对话框是与用户进行简短交互的顶层窗口。 QDialog是Qt中所有对话框窗口的基类。 QDialog继承与QWidfet是一种容器类型的组件。 QDialog的意义: QDialog作为一种专业的交互窗口而存在。 QDialog不能作为子部部件嵌入其他容器中。 QDialog是定制…

【算法集训】基础算法:枚举

一、基本理解 枚举的概念就是把满足题目条件的所有情况都列举出来,然后一一判定,找到最优解的过程。 枚举虽然看起来麻烦,但是有时效率上比排序高,也是一个不错的方法、 二、最值问题 1、两个数的最值问题 两个数的最小值&…

力扣刷题:226.反转二叉树

题目: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出:[2…

业务真的需要微服务吗

业务真的需要微服务吗 要说过去十年最火热的软件体系是什么,个人认为莫过于“微服务架构“了。从一线互联网架构师,到刚接触计算机软件不久的学生几乎都或多或少的了解过”微服务“相关知识了,其中在最出名的微服务体系要数 spring cloud 了…

CentOS安装Docker(黑马学习笔记)

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上…

作用域、解构、箭头函数

作用域 局部作用域 函数作用域(一直 存在) 块作用域(ES6,只有let和const有块级作用域&#xff0c;var没有) 块就是一对大括号&#xff0c;比如{ }、if(){ }、for(…){ } 使用var则失去块级作用域 //例如 for(var i1;i<3;i) {console.log(i)} console.log(i);//正确&…

Semantic human matting

1.introduction 数据集包括&#xff0c;时尚模特数据集&#xff0c;超过18.8w张模特图&#xff0c;从中选出35311张图片&#xff0c;DIM数据集&#xff0c;仅包含人类的图像&#xff0c;202个前景图像&#xff0c;背景来自coco数据集和互联网&#xff0c;背景图不含人类&#x…

SpringBoot整合MyBatis实现增删改查

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容: SpringBoot整合MyBatis实现增删改查 📚个人知识库: Leo知识库,欢迎大家访…

【问题解决】| 关于torch无法使用GPU的一些实验探索,思考

文章目录 1 研究背景2 问题解决2.1 问题一&#xff0c;这两个版本分别是怎么得到的&#xff1f;2.2 问题二&#xff0c;Windows下安装CUDA Tookit 是必须的吗&#xff1f;2.3 问题三&#xff0c;驱动版本必须大于等于运行时版本吗&#xff1f;2.4 问题四&#xff0c;只运行pip …

【大厂AI课学习笔记NO.56】(9)模型评测

作者简介&#xff1a;giszz&#xff0c;腾讯云人工智能从业者TCA认证&#xff0c;信息系统项目管理师。 博客地址&#xff1a;https://giszz.blog.csdn.net 声明&#xff1a;本学习笔记来自腾讯云人工智能课程&#xff0c;叠加作者查阅的背景资料、延伸阅读信息&#xff0c;及学…

微信小程序证书评级导致接口无法访问问题

微信小程序的ssl证书到期后&#xff0c; 更换了免费的ssl证书&#xff0c; 是在freessl网站申请的&#xff0c; 配置完了&#xff0c;后台可以访问https网页&#xff0c;但是小程序还是无法访问&#xff0c; 开始没有怀疑是https证书的问题&#xff0c; 调适了好长时间的代码&a…

前后端分离vue+nodejs高校体育运动会比赛系统08fv2-python-php-java

实现了一个完整的高校体育运动会比赛系统系统&#xff0c;其中主要有运动项目模块、学生模块、项目类型模块、用户表模块、token表模块、关于我们模块、收藏表模块、公告信息模块、留言板模块、运动论坛模块、配置文件模块、裁判员模块、比赛成绩模块、比赛报名模块、关于我们模…

9、taocms代码审计

一、XSS 1、DOM型xss 限制 无复现 payload: aa)alert(1)( 触发的参数&#xff1a;name代码 根据路由找到对应的文件&#xff0c;在api.php里接受全局变量action&#xff0c;最终赋值给$m,判断 如果$m不在数组就结束&#xff0c;新建方法复制给$model。检查类的方法是否存…

ctf_show笔记篇(web入门---爆破)

爆破 21&#xff1a;直接bp抓包跑字典&#xff0c;需base64加密 22&#xff1a;可用工具跑也可用浏览器找还可以用网上做好的域名查找去找 23&#xff1a;此题需跑脚本已经附上自写脚本 最后跑出来六个答案一个一个尝试得到答案为3j import hashlibm "0123456789qwert…

安卓之ContentProvider的应用场景以及优劣分析

摘要 本文旨在对Android开发中的ContentProvider进行深入探讨。ContentProvider是Android系统中四大组件之一&#xff0c;主要用于在不同的应用程序之间共享数据。本文首先对ContentProvider进行概述&#xff0c;然后分析其应用场景&#xff0c;接着对其优势和劣势进行分析&…

Linux设备模型(十一) - platform设备

一&#xff0c;platform device概述 在Linux2.6以后的设备驱动模型中&#xff0c;需关心总线、设备和驱动这3个实体&#xff0c;总线将设备和驱动绑定。在系统每注册一个设备的时候&#xff0c; 会寻找与之匹配的驱动&#xff1b;相反的&#xff0c;在系统每注册一个设备的时…

开发者38万+,鸿蒙开发岗为何却无人敢应聘?

鸿蒙校园公开课已走进135家高校&#xff0c;305所高校学生参与鸿蒙活动&#xff0c;286家企业参加鸿蒙生态学堂&#xff0c;38万开发者通过鸿蒙认证。 居上华为官方是说有通过鸿蒙开发者认证的已有38万。具体有多少开发者并没有明确表示。除此之外还有200家头部应用加速鸿蒙原…

【Golang切片】

切片 切片的引入内存分析切片的定义切片的遍历切片注意事项 切片的引入 【1】切片&#xff08;slice&#xff09;是golang中一种特有的数据类型 【2】数组有特定的用处&#xff0c;但是却有一些呆板&#xff08;数组长度固定不可变&#xff09;&#xff0c;所以在Go语言的代码…

面试题VUE篇

文章目录 Vue 的核心是什么/请简述你对 vue 的理解请简述 vue 的单向数据流槽口请简述Vue 常用的修饰符有哪些1. 普通修饰符2. 事件修饰符3. 键盘修饰符4. 系统修饰符 v-text 与{{}}与 v-html 区别v-on 可以绑定多个方法吗Vue 循环的 key 作用什么是计算属性Vue 单页面的优缺点…