贪心算法的C/C++程序,用于找到最少硬币数量
贪心算法是一种用于寻找给定问题的最优解决方案的算法。贪婪算法的工作原理是找到每个部分的局部最优解(问题的一部分的最优解),因此表明可以找到全局最优解。
在这个问题中,我们将使用贪婪算法算法来找到可以组成给定总和的最小硬币/纸币数量。 为此,我们将考虑所有有效的硬币或纸币,即面额为 { 1, 2, 5, 10, 20, 50 , 100, 200 , 500 ,2000 }。我们需要返回需要补足总和的硬币/纸币的数量。
让我们举几个例子来更好地理解上下文 -
示例 1 -
Input : 1231 Output : 7
说明 - 我们需要两张 500 卢比纸币、两张 100 卢比纸币、一张 20 卢比纸币、一张 10 卢比纸币和一张 Re 1 硬币。总计为 2+2+1+1+1 = 7
示例 2 -
Input : 2150 Output : 3
说明 - 我们需要一张 2000 卢比纸币、一张 100 卢比纸币和一张 50 卢比纸币。
为了使用贪心算法解决此问题,我们将找到最大面额的纸币可以使用。然后我们将从总和中减去最大面额,并再次执行相同的过程,直到总和为零。
算法
Input: sum, Initialise the coins = 0 Step 1: Find the largest denomination that can be used i.e. smaller than sum. Step 2: Add denomination two coins and subtract it from the Sum Step 3: Repeat step 2 until the sum becomes 0. Step 4: Print each value in coins.
示例
实时演示
#include <bits/stdc++.h> using namespace std; int notes[] = { 1, 2, 5, 10, 20, 50, 100, 200, 500, 2000 }; int n = sizeof(notes) / sizeof(notes[0]); void minchange(int sum){ vector<int> coins; for (int i = n - 1; i >= 0; i--) { while (sum >= notes[i]) { sum -= notes[i]; coins.push_back(notes[i]); } } for (int i = 0; i < coins.size(); i++) cout << coins[i] << "\t"; } int main(){ int n = 3253; cout << "The minimum number of coins/notes that sum up " << n << " is \t "; minchange(n); return 0; }
输出
The minimum number of coins/notes that sum up 3253 is 2000 500 500 200 50 2 1
以上是贪心算法的C/C++程序,用于找到最少硬币数量的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

如何实现C#中的贪心算法贪心算法(Greedyalgorithm)是一种常用的问题求解方法,它每次选择当前最优的解决方案,希望能够获得全局最优解。在C#中,我们可以利用贪心算法解决许多实际问题。本文将介绍如何在C#中实现贪心算法,并提供具体的代码示例。一、贪心算法的基本原理贪心算法的基本思想是每次都选择当前最优的解决方案,而不考虑后续步骤可能的影响。这种思

函数 strcmp() 是内置库函数,在“string.h”头文件中声明。该函数用于比较字符串参数。它按字典顺序比较字符串,这意味着它逐个字符地比较字符串。它开始比较

如何使用贪心算法在PHP中实现最少硬币找零问题的高效解决方案?引言:在日常生活中,我们经常需要找零,尤其是在购物或交易时。要尽可能少地使用硬币,找零金额应该使用尽可能少的硬币进行组合。在计算机编程中,我们可以使用贪心算法来解决这个问题,以得到一个高效的解决方案。本文将介绍如何在PHP中使用贪心算法实现最少硬币找零问题的高效解决方案,并提供相应的代码示

Ford-Fulkerson算法是贪心算法,用于计算网络中的最大流量。其原理是找到剩余容量为正的增广路径,只要找到增广路径,就可以继续增加路径和计算流量。直到增广路径不再存在,这时就能得出最大流量。Ford-Fulkerson算法的术语剩余容量:就是将容量减去流量,在Ford-Fulkerson算法中剩余容量是正数,才能继续作为路径。残差网络:是一个具有相同顶点和边的网络,使用残差容量作为容量。增广路径:是残差图中从源点到接收点的路径,最终容量为0。Ford-Fulkerson算法原理示例可能概

fseek()在C语言中用于将文件指针移动到特定位置。偏移量和流是指针的目标,它们在函数参数中给出。如果成功,它返回零。如果不成功,它返回非零值。以下是C语言中fseek()的语法:intfseek(FILE*stream,longintoffset,intwhence)这里是在fseek()中使用的参数:stream−这是用于标识流的指针。offset−这是从位置开始的字节数。whence−这是偏移量添加的位置。whence由以下常量

如何使用Python实现贪心算法?贪心算法(GreedyAlgorithm)是一种简单而有效的算法,适用于解决那些具有最优子结构性质的问题。它在每一步选择中都采取当前状态下最优的选择,希望能够找到全局最优解。在本篇文章中,将介绍如何使用Python实现贪心算法,并附带具体的代码示例。一、贪心算法的基本思想贪心算法的基本思想是每一步选择当前状态下的最优解,然

如何使用PHP编写贪心算法贪心算法(Greedyalgorithm)是一种简单而有效的算法,用于解决一类最优化问题。它的基本思想是在每个步骤中都做出当前看起来最好的选择,而不考虑未来的后果。本文将介绍如何使用PHP编写贪心算法,并提供相关的代码示例。一、问题描述在讲解贪心算法之前,先来定义一个具体的问题,以便更好地理解。假设有一组任务,每个任务都有一个开始

贪心算法是一种常用的算法思想,在许多问题中都有着广泛的应用。其核心思想是在做出每一步的决策时,只考虑眼前最优解,而不考虑长远的影响。在C++中,贪心算法的实现经常会涉及到排序、数据处理等基本操作。下面,我们将针对几个典型的问题,介绍贪心算法的思路及其在C++中的实现。1.活动安排问题给定一组活动,每个活动有其开始时间和结束时间,同时一个人一次只能参加一个活动
