硬币问题
有1元,5元,10元,50元,100元,500元的硬币各C1 C5 C10 C50 C100 C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假定本题只存在一种支付方案.
INPUT
3 2 1 3 0 2
620
OUTPUT
6
代码:
#include<stdio.h>
int v[6]={1,5,10,50,100,500};//记录几种硬币的价值
int c[6]={0};//用于记录几种硬币的个数
int min(int a,int b)
{
if(a>b)
return b;
return a;
}
main()
{
int t,ans=0,A;//A为总价,ans为总个数,t为当前判断硬币的个数
for(int i=0;i<=5;i++)
{
scanf("%d",&c[i]);//逐次输入硬币个数
}
scanf("%d",&A);
for(int i=5;i>=0;i--)
{
t=min(A/v[i],c[i]);
//若A/v[i]>c[i]则取能够不溢出目前总价值的最高硬币,
//数作为该价值硬币的选择个数,若小于,则只能选择最多的c[i].
A-=t*v[i];//目前剩余价值
ans+=t;//目前可选硬币总数
}
printf("%d\n",ans);
}
———-待添加