硬幣問題(貪心解決)

思路:將硬幣的錢幣面值從大到小進行與總面值的運算,直到總面值爲0結束

#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int n;
int main()
{
    int A;
    int v[6]={1,5,10,50,100,500};//錢幣面值
    int c[6];//每種錢幣的數量
    int num[6];
    for(int i=0;i<6;i++)
        scanf("%d",&c[i]);
    scanf("%d",&A);
    int ans=0;//用的錢幣的枚數
    for(int i=5;i>=0;i--)
    {
        int t=min(A/v[i],c[i]);
        num[i]=t;
        A-=t*v[i];
        ans+=t;
    }
    for(int i=0;i<6;i++)
        printf("%d ",num[i]);//每種錢幣的數量
    printf("\n總數量%d",ans);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章