【趣味学算法】兑换钱币

news/2024/7/7 21:07:59

注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正

要将 50 元的软妹币兑换成 10 元、5 元和 1 元的钱币,问共有多少种不同的兑换方法?

让我们将上述问题稍微转化一下,则可以按以下方式理解,设三个变量xyz
变量 x 代表 10 元的可能取值:[0,10,20,30,40,50]
变量 y 代表 5 元的可能取值:[0,5,10,15,20,25,30,35,40,45,50]
变量 z 代表 1 元的可能取值:[0,1,2,…,50]
从xyz中取值进行组合需要满足条件x+y+z=50 元

代码实现:

count=0
for x in range(0,51,10):
    for y in range(0,51,5):
        for z in range(0,51):
            if x+y+z==50:
                count += 1
                print('10元{}张   5元{}张   1元{}张'.format(x//10,y//5,z),end='  ')
                if count%3==0:#每3个结果一行方便查看
                    print()
print('共有{}种方案'.format(count))

输出
在这里插入图片描述
上述是利用了步长实现,也可以换一个角度直接设10元、5元、1元对应的张数为xyz
x 取值范围:[0,5]
y取值范围:[0,10]
y取值范围:[0,50]
仍然是穷举法的思路,从xyz中取值进行组合需要满足条件10x+5y+z=50 元

代码实现

count=0
for x in range(0,6):
    for y in range(0,11):
        for z in range(0,51):
            if 10*x+5*y+z==50:
                count += 1
                print('10元{}张 5元{}张 1元{}张'.format(x,y,z),end='\t\t') 
                if count%3==0:#每3个结果一行方便查看
                    print()
print('共有{}种方案'.format(count))

输出结果:
在这里插入图片描述


http://lihuaxi.xjx100.cn/news/2088636.html

相关文章

QML | JavaScript 宿主环境、JavaScript 对象和函数、JavaScript环境限制

01 JavaScript 宿主环境 QML提供了为编写QML应用程序量身定做的JavaScript宿主环境,它与为浏览器和服务器端提供的宿主环境是不同的。例如,QML中没有提供在浏览器环境中常见的window对象或DOM API等。 1.公共基础 与浏览器或服务器端JavaScript环境一样,QML运行时实现了ECM…

Python安装第三方库

前言:大部分时候我们都是使用pip install去安装一些第三方库,但是偶尔也会有部分库无法安装(最典型的就是dlib这个库),需要采取别的方法解决,这里做笔记记录一下。 使用国内镜像源安装 因为pypi的服务器在…

Jeecg-boot 初次启动项目失败

1.将IDEA的字符编码全部改成utf-8 2. 更改database的密码 3.换个jdk重新启动

MySQL Connector连接失败之SSL connection error: protocol version mismatch

调用 mysql_real_connect() 连接失败,报错为ERROR 2026 (HY000): SSL connection error: protocol version mismatch 调用mysql_error()查看失败原因,结果为 SSL connection error: protocol version …

互联网高频面:输入URL按下回车后,中间发生了什么

题目 输入URL按下回车后,中间发生了什么 这个问题其实是计算机网络里面很经典的一个问题,不能去死机硬背,很考察对网络架构和通信原理的理解,也是各个互联网大厂喜欢考察的面试题。 一些图片参考了小林的计算机网络面经 从输入…

Java开发从入门到精通(一):Java的数据结构和算法

数据结构: 数组(Array):有序的元素集合,具有固定大小。 链表(Linked List):由一系列节点组成的链式数据结构。 栈(Stack):后进先出的数据结构&…

24计算机考研调剂 | 齐齐哈尔大学

2024年齐齐哈尔大学朱老师课题组招收通信与信息系统和电子信息类专业研究生调剂 考研调剂招生信息 学校:齐齐哈尔大学 专业:工学->信息与通信工程->通信与信息系统 年级:2024 招生人数:2 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP…

ffmpeg解码和渲染理解

ffmpeg解码和渲染理解 ffmpeg视频解码步骤 FFmpeg 是一个功能强大的跨平台多媒体处理工具,包含了音视频编解码、封装/解封装、过滤器等功能。下面是一般情况下使用 FFmpeg 进行视频解码的步骤: 初始化 FFmpeg 库:首先需要初始化 FFmpeg 库&a…