計算機演算法設計與分析 找零錢問題

2021-09-29 11:44:18 字數 667 閱讀 8757

原題目為:

tom在自動售貨機上買了一瓶飲料,售價37美分,他投入了1美元(1美元 = 100美分),現在自動售貨機需要找錢給他。售貨機中現在有6種面額的硬幣:1美分,2美分,5美分,11美分,20美分,50美分,每種硬幣的數量充足。現在要求使用最少數量的硬幣,給tom找錢,求出這個最少數量是多少。

為了具有一般性,做一下改動,tom投入了n枚美元買m瓶37美分一瓶的飲料,問找回來的最少硬幣數目是多少。

比較典型的完全揹包問題,每種硬幣可以拿也可以不拿,拿的話可以拿任意個。由於是取最小值,所以在初始化時將陣列置為當前狀態下硬幣的最大值,即拿面值為1的硬幣,之後按照模板即可。

#includeusing namespace std;

int dp[1005];

int num[7]=;

int m,n;

int main()

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

dp[i]=i;

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

for(int j=num[i];j<=rest;j++)

dp[j]=min(dp[j],dp[j-num[i]]+1);

printf("%d\n",dp[rest]);

} return 0;

}

貪心演算法解決找零錢問題

4.1 找零問題 問題描述 設有50 20 10 5 1 0.5 0.1等面額的零錢,顧 客購物花了n元,在支付 n 100 1 100元後,收銀員應如何找 零,才能使找回的錢數最少。輸入 n,表示顧客所花的錢數,最多包含一位小數。輸出 找回的零錢數。樣例輸入 67.5 243 樣例輸出 5 4 a...

計算機演算法設計與分析 棋盤覆蓋問題

一 實驗目的與要求 1 掌握棋盤覆蓋問題的演算法 2 初步掌握分治演算法 二 實驗題 盤覆蓋問題 在乙個2k 2k 個方格組成的棋盤中,恰有乙個方格與其它方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤。在棋盤覆蓋問題中,要用圖示的4種不同形態的l型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有...

計算機演算法設計與分析 租用遊艇問題

長江俱樂部在長江設定了n個遊艇出租站1,2,n,遊客可在這些遊艇出租站租用遊艇,並在下游的任何乙個遊艇出租站歸還遊艇。遊艇出租站i到遊艇出租站j之間的租金為r i,j 設計乙個演算法,計算出從出租站1到出租站n所需要的最少租金。測試用例 3 站數 5 15 第一站到其他相應各站的租金 7 第二站到其...