練習題 No 2 硬幣問題(貪心法)

2021-07-28 07:58:15 字數 785 閱讀 3237

現在有1元、5元、10元、50元、100元、500元的硬幣,有c1

, c2

,c3 ,c4

, c5

。 現在需要用這些硬幣來支付a元,最少需要多少硬幣?

輸入需要輸入5種硬幣的數量和需要支付的錢
輸出需要有用了多少硬幣以及每種硬幣各花了多少
10000 100 50 20 10 5

5000

cost =85: 1(0) 5(0) 10(50) 50(20) 100(10) 500(5)
用貪心法來解決
#include

using

namespace

std;

int main() ;

int rmbnumber[6];

int pay;

for (int i = 0; i < 6; i++)

cin >> pay;

int cost = 0;

for (int i = 5; i >= 0; i--)

if (pay > 0)

cout

<< "cost = "

<< cost << ": ";

for (int i = 0; i < 6; i++)

cout

<< endl;

return

0;}

練習題 No 4 字典序最小問題(貪心法)

給定長度為n的字串s,要構造乙個長度為n的字串t。起初,t是乙個空串,隨後反覆進行下列任意操作。1.從s的頭部刪除乙個字元,加到t的尾部。2.從s的尾部刪除乙個字元,加到t的尾部 第一行輸入一行字串輸出字串tacdbcbabcbcd此題用貪心法,從頭或者尾選乙個較小的。比較頭尾的二個字元大小,將加的...

練習題目2

1 將陣列a中的內容和陣列b中的內容進行交換 陣列一樣大 思路 新建乙個陣列作為中間陣列進行交換.如下 2 計算1 1 1 2 1 3 1 4 1 5 1 99 1 100的值.思路 通過每一輪迴圈給分子乘以 1來控制加數的正負號,計算出和.如下 3 編寫程式數一下1到199的所有整數 現過多少次數...

程式練習題 2

考慮如下的序列生成演算法 從整數 n 開始,如果 n 是偶數,把它除以 2 如果 n 是奇數,把它乘 3 加1。用新得到的值重複上述步驟,直到 n 1 時停止。例如,n 22 時該演算法生成的序列是 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1。人們猜想 沒有...