先把所有的加起来,
先减去10的个数,然后减去5的个数,然后减去1的个数,
就是能用 1的就不用 5的,能用 5的就不用 10的,
最后一定要判断下是否多给钱了,多给钱就不买了,这个地方wa了好几次
嘤…
#include<iostream>
#include<string.h>
#include<math.h>
#include<stdio.h>
using namespace std;
int main(){
int n,a,b,c;
while(cin>>n>>a>>b>>c,n+a+b+c){
if(n>a+5*b+10*c){
cout<<"Hat cannot buy tea."<<endl;
continue;
}
int ans1=a,ans2=b,ans3=c;
int all=a+5*b+10*c;
if(all-10>=n&&ans3>0){
int k=min(ans3,(all-n)/10);
all-=10*k;
ans3-=k;
}if(all-5>=n&&ans2>0){
int k=min(ans2,(all-n)/5);
all-=5*k;
ans2-=k;
}if(all-1>=n&&ans1>0){
int k=min(ans1,(all-n));
all-=k;
ans1-=k;;
}
if(ans1+ans2*5+ans3*10!=n){
cout<<"Hat cannot buy tea."<<endl;
continue;
}
printf("%d YiJiao, %d WuJiao, and %d ShiJiao\n",ans1,ans2,ans3);
}
}