有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...