貪心演算法的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脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用貪心演算法在PHP中實現最少硬幣找零問題的高效解決方案?引言:在日常生活中,我們常常需要找零,尤其是在購物或交易時。要盡可能少使用硬幣,找零金額應該使用盡可能少的硬幣進行組合。在電腦程式設計中,我們可以使用貪心演算法來解決這個問題,以獲得一個高效的解決方案。本文將介紹如何在PHP中使用貪心演算法實現最少硬幣找零問題的高效解決方案,並提供相應的程式碼示

如何實作C#中的貪心演算法貪心演算法(Greedyalgorithm)是一種常用的問題解法,它每次選擇目前最優的解決方案,希望能夠獲得全域最優解。在C#中,我們可以利用貪心演算法解決許多實際問題。本文將介紹如何在C#中實作貪心演算法,並提供具體的程式碼範例。一、貪心演算法的基本原理貪心演算法的基本思想是每次都選擇當前最優的解決方案,而不考慮後續步驟可能的影響。這種思

函數strcmp()是內建函式庫函數,在「string.h」頭檔中宣告。該函數用於比較字串參數。它按字典順序比較字串,這意味著它逐個字元地比較字串。它啟動comp

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.活動安排問題給定一組活動,每個活動有其開始時間和結束時間,同時一個人一次只能參加一個活動
