[动态规划]UVA674 - Coin Change

题意:

給你一個金額( n cents),請你回答共有多少種硬幣組合的方式。例如:n=11,那麼你可以有以下4種硬幣的組合:

  1. 1個 10 cent的硬幣加上1個 1 cent的硬幣
  2. 2個 5 cent的硬幣加上1個 1 cent的硬幣
  3. 1個 5 cent的硬幣加上6個 1 cent的硬幣
  4. 11個 1 cent的硬幣

p.s 美國的零錢共有以下5種硬幣以及其面值:

  • penny, 1 cent
  • nickel, 5 cents
  • dime, 10 cents
  • quarter, 25 cents
  • half-dollar, 50 cents

請注意:n=0 我們算他是有一種方式。

思路:又是这个类型的动态规划,[动态规划]UVA357 - Let Me Count The Ways  [动态规划]UVA147 - Dollars 这些都是同一个类型的题目。

#include<iostream>
#include<cstring>

using namespace std;

const int maxn=8000;

int coin[5]={1,5,10,25,50};

long long dp[maxn]={1};

int main()
    {
        int num;
        int i,j;
        for(i=0;i<5;i++)
        {
            for(j=0;j<maxn-100;j++)
            {
                dp[j+coin[i]]=dp[j+coin[i]]+dp[j];
            }
        }
        while(cin>>num)
            {
                cout<<dp[num]<<endl;
            }
        return 0;
    }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值