贪心算法最简单的硬币找钱问题

  题目描述:

有1,5,10,50,100,500的硬币各C1,C5,C10,C50,C100,C500枚,现在要用这些硬币来支付A元,最少需要多少枚硬币。

解题思路:

贪心算法,竟可能多的使用面值最大的硬币的这一贪心的策略来切了。

# include<cstdio>
# include<iostream>

using namespace std;

const int V[6] = {1,5,10,50,100,500};

int C[6];

int main(void)
{
    int A;
    while ( cin >> A )
        {
            int ans = 0;
            for (int i = 0;i < 6;i++ )
                {
                    cin>>C[i];
                }
                for ( int i = 5;i >= 0;i-- )
                    {
                        int t = min(A/V[i],C[i]);
                        A -= t*V[i];
                        ans+=t;
                    }

                    cout<<ans<<endl;
        }


    return 0;
}
    原文作者:贪心算法
    原文地址: https://blog.csdn.net/wikioi_bai/article/details/41802743
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞