貪心演算法例4

2021-10-04 20:19:08 字數 928 閱讀 8742

有1元、5元、10元、50元、100元、500元的硬幣無窮多枚,現在用這些硬幣支付s元,最少需要多少枚硬幣

例:輸入

763輸出

需要500元硬幣1枚

需要100元硬幣2枚

需要50元硬幣1枚

需要10元硬幣1枚

需要1元硬幣3枚

#include

#include

intmain

(int argc,

char

*ar**)

;scanf

("%d"

,&s)

;while

(s)}

return0;

}

問題描述:有1元、5元、10元、50元、100元、500元的硬幣各c1,c5,c10,c50,c100,c500枚。現在要用這些硬幣來支付a元,最少需要多少枚硬幣?假設本題至少存在一種支付方案。

例:3 2 1 3 0 2 620

#include

#include

intmain

(int argc,

char

*ar**)

;for

(i=0

;i<

6;i++

)scanf

("%d "

,&b[i]);

//從1到500各個面值個數

scanf

("%d"

,&s)

;for

(i=0

;i<

6&&s;i++

)else

if(m>b[

5-i]

&&b[

5-i]

)//該面值有但個數不夠

}return0;

}

貪心演算法例題

貪心演算法 greedy 分階段地工作,在每乙個階段都可以認為所做的決定是最好的,而不用考慮後果。這就意味著得到的是區域性最優解決方案,當演算法結束時,如果乙個乙個區域性最優解能組成全域性最優解決,那麼就說明這個演算法是正確的 如果不是,則此演算法的到的結果就是乙個次優解。因此,如果使用貪婪演算法得...

貪心演算法例題

牛牛舉辦了一次程式設計比賽,參加比賽的有3 n個選手,每個選手都有乙個水平值a i.現在要將這些選手進行組隊,一共組成n個隊伍,即每個隊伍3人.牛牛發現隊伍的水平值等於該隊伍隊員中第二高水平值。例如 乙個隊伍三個隊員的水平值分別是3,3,3.那麼隊伍的水平值是3 乙個隊伍三個隊員的水平值分別是3,2...

貪心演算法例1

有n項工作,每項工作分別在si開始,fi結束。對於每項工作,你都可以選擇參加或者不參加,選擇參加就必須全程參與 開始和結束時間不可重複 問最多可以參加多少項工作。思路 選擇最早結束的工作,這樣才能留下時間選擇更多工作 注 已排序 include template class t void choos...