换零钱问题

作者: cherryleechen | 来源:发表于2019-05-19 18:34 被阅读0次

问题描述

100元换零钱1元、2元、5元、10元、20元、50元有多少种组合方案?

解题思路

使用动态规划来求解,使用F(N,M)表示用不超过第M个面值(从小到大排序)的零钱来表示N的所有组合方案数,则
{\begin{equation}\begin{aligned} F(N,M) = \left\{\begin{array}{rcl} F(N,M-1)+F(N-VALUE[M],M) && {N-VALUE[M] \ge 0}\\ F(N,M-1) && {N-VALUE[M] < 0} \end{array}\right. \end{aligned}\end{equation}}

程序实现

int main()
{
    int val[7] = { 0,1,2,5,10,20,50 };
    int f[101][7];
    memset(f, 0, sizeof(f));
 
    for (int j = 0; j <= 6; j++)
        f[0][j] = 1;
    
    for (int j = 1; j <= 6; j++)
    {
        for (int i = 1; i <= 100; i++)
        {
            if (i - val[j] < 0)
                f[i][j] = f[i][j - 1];
            else
                f[i][j] = f[i - val[j]][j] + f[i][j - 1];
        }
    }
 
    cout << f[100][6] << endl;
    system("pause");
    return 0;
}

相关文章

  • 换零钱问题

    问题描述 100元换零钱1元、2元、5元、10元、20元、50元有多少种组合方案? 解题思路 使用动态规划来求解,...

  • 279. 完全平方数

    直接转化为换零钱问题 我的代码的效率不是最高的, 但是可读性很好.

  • 动态规划入门题——换零钱

    萌新一枚在本校OJ刷题刷到一道动态规划的换零钱问题,看了网上CSDN的一篇文章,算是弄懂了换零钱动态规划的原理吧。...

  • 背包系列问题——换零钱

    参考资料:1. 动态规划之背包问题系列 背包问题的定义参见参考资料1跟背包问题不同的是,目标是换的零钱的个数最少。...

  • 背包系列问题3——换零钱

    参考资料:1. 动态规划之背包问题系列2. 换零钱 只能从选择一个》》01背包问题:是否可以,max改为||

  • 背包系列问题——换零钱2

    参考资料:1. 动态规划之背包问题系列2. 换零钱2 无限硬币》》完全背包问题只不过把问题从最大收益换做种类,ma...

  • 换零钱

    那天下午我到市里去,临走时忘了带公交卡。 再翻翻包里,还真没带零钱,最小的也是一张二十的票子。 我想回去拿,可一想...

  • 换零钱

    清晨,突如其来的大雨使得我狼狈不堪冲进了公交站台。 想着如此大雨,拿着手机刷乘车码不方便,我便打开背包翻找着零钱。...

  • 换零钱

    刚学完元角分这单元,为了让孩子们更加熟练地掌握元角分之间的关系,我设置了换零钱这样的练习题。 我先...

  • 换零钱

    昨天收拾家里,妈妈翻出一袋硬币,硬币用蛇皮袋装着,里面还用无纺布的盛酒的袋子装着。这些钱是爸爸妈妈以前卖牛奶时攒下...

网友评论

    本文标题:换零钱问题

    本文链接:https://www.haomeiwen.com/subject/mnvqzqtx.html