有 1 元、5 元、10 元、50 元、100 元硬币各有若干枚,现在要用这些硬币支付 n 元,问最少需要多少枚硬币。
对了,有 t 组数据。而且5种币有限量,凑不出来输出-1。
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n,a,b,c,d,e,ans=0,tmp=0;
cin>>n>>a>>b>>c>>d>>e;
if(e*100<n){
n-=e*100;
ans+=e;
}else{
tmp=n/100;
n%=100;
ans+=tmp;
}
if(d*50<n){
n-=d*50;
ans+=d;
}else{
tmp=n/50;
n%=50;
ans+=tmp;
}
if(c*10<n){
n-=d*10;
ans+=d;
}else{
tmp=n/10;
n%=10;
ans+=tmp;
}
if(b*5<n){
n-=b*5;
ans+=d;
}else{
tmp=n/5;
n%=5;
ans+=tmp;
}
if(a<n){
cout<<-1;
}else{
cout<<ans;
}
cout<<endl;
}
return 0;
}
我debug了好长时间,没debug出来。
orz