【算法】硬币组合数hdu2069

该博客讨论了如何使用动态规划解决硬币找零问题。以5种不同面值的美国硬币为例,介绍了当有100个硬币或更少时,找出给定金额的不同找零方法总数的方法。通过设置初始状态dp[0] = 1,并根据硬币面值建立递推关系,可以计算出任何金额的找零方案数量。
摘要由CSDN通过智能技术生成

基础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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值