思路:将硬币的钱币面值从大到小进行与总面值的运算,直到总面值为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);
}