基础dp
硬币找零
问题描述
假设有5种硬币:50美分,25美分,10美分,5美分和1美分。我们希望以给定的金额使用这些硬币进行更改。
例如,如果我们有11美分,则可以用一枚10美分硬币和一枚1美分硬币,或两枚5美分硬币和一枚1美分硬币,或一枚5美分硬币和六枚1美分硬币进行找零。分硬币或11个1分硬币。因此,使用上述硬币,有四种方法可以使11分钱找零。请注意,我们认为有一种方法可以使零分钱发生变化。
编写一个程序,以查找以美分计的任何金额进行更改的不同方式的总数。您的程序应能够处理多达100个硬币。
输入项
输入文件包含任意数量的行,每行包含一个数字(≤250),以分币为单位。
输出量
对于每条输入线,输出一条线,其中包含使用上述5种硬币进行更改的不同方式的数量。
样本输入
11
26
样本输出
4
13
在没有金币数量限制时
步骤1.
dp[0] = 1为初始值。dp[1]刻有dp[0]推导而来,dp[i]与dp[i-1]之间有递推关系
步骤2和3.
#include<bits/stdc++.h>
using namespace std;
const int money = 251;
int type[5] = {
1, 5, 10, 25, 50};
int dp[251] = {
0};
void solve