最少硬币问题-dp
題目:
有5種硬幣,面值分別為:1,5,10,25,50。數(shù)量無限,輸入非負(fù)整數(shù)s,選用硬幣,使其和為s。要求輸出最少的硬幣組合要多少個硬幣?
數(shù)據(jù)范圍:
s最大為250.
解題思路:
有時間再寫,可以評論喊一聲哦,我怕我忘記了!!!
代碼如下:
#include <iostream> using namespace std; const int N = 5; const int Maxm = 251;int m[] = {1, 5, 10, 25, 50}; const int INF = 99999999; int dp[Maxm];int main() {for (int i = 0; i < Maxm; i++)dp[i] = INF;dp[0] = 0;for (int i = 0; i < N; i++)for (int j = m[i]; j < Maxm; j++) {dp[j] = min(dp[j], dp[j - m[i]] + 1);}int s;while (cin >> s) {cout << dp[s] << endl;}return 0; } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: 根据二叉树的先序和中序求后序遍历
- 下一篇: 近视会让眼睛变小吗