题目描述
假设货币有1,2,4,5,10五种硬币,每种数量都无限多,现在给出金额n(1<=n<=1000000),求出最少的硬币数量
输入
现在给出金额n(1<=n<=1000000)
输出
最少的硬币数量
样例输入
10
样例输出
1
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int dp[n + 1] = {0};
int data[6] = {0, 1, 2, 4, 5, 10};
for (int i = 1; i <= n; i++)
dp[i] = i;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= 5; j++)
if (data[j] <= i)
dp[i] = min(dp[i], dp[i - data[j]] + 1);
cout << dp[n] << endl;
return 0;
}