換零錢實現之貪心演算法

2021-07-10 13:49:28 字數 632 閱讀 3153

貪心演算法的基本思路:

從問題的某一步初始化解出逐步逼近給定的目標,以盡可能快地求得更好的解。當達到演算法中的某一步不能再繼續前進時,就停止演算法,給出近似解。

下面就乙個例子來說明貪心的實現過程:就以乙個換零錢的例子吧,輸入乙個數字的面額,求出用100,50...等等面額怎麼才能換成像對應的錢

#includeusing namespace std;

void tanxin(int a);

int value[10]=;

int num[10]=;

int main()

while(a>0 && i<10)else if(a<10&&i>=5)

else

i++;

}}

通過上面**我們不能看出,貪心演算法的實現過程:

從問題的某一初始化解出發

while是否達到(或者近似達到)設定的目標

求出可行解的乙個解元素

由所有解元素組合成問題的乙個可行解

由此我們不能得出,該演算法存在的一些問題:

1.不能保證最後的解是最優的

2.不能用來求最值問題

3.只能滿足某些約束條件的可行解的範圍

上機筆試之九 貪心演算法 換零錢

換零錢問題也是常考的一種題型。給定乙個數,將其換成最少數量的零錢。如下 include using namespace std void main i 0 while 1 printf times d n left 上機筆試系類教程 上級筆試之一 資料輸入 上機筆試之二 氣泡排序 上機筆試之三 快速...

換零錢的演算法

問題來自sicp,描述如下 現在若干紙幣,想要兌換成硬幣。硬幣面值有1,5,10,25,50分的硬幣。什麼,沒有25分的,我說的是美元。問有多少種組合方式 這是介紹線性遞迴這個概念的時候的乙個例子,很有意思。演算法嘛,很樸素啊,其主要思想如下 scheme的 就不貼上來了,太簡單太抽象。我們還是用c...

換零錢 見解

n元錢換為零錢,有多少不同的換法?幣值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如 5分錢換為零錢,有以下4種換法 1 5個1分 2 1個2分3個1分 3 2個2分1個1分 4 1個5分 由於結果可能會很大,輸出mod 10 9 7的結果 input 輸入1個數n,n...