hdu 1288

这道题终于被我切了,昨天下午提交了几次都wa,今天冷静的想了下就把它给切了;

主要是个思路问题,注意几个地方:(1)你投进去的钱是要恰好等于它的价值  (2)要硬币数量最多。。

附上代码

:#include <iostream>
using namespace std;
int cnt_i,cnt_j,flag;
void eg(int a,int b,int c,int n)
{
 for(int i=0;i<=c;i++)
    for(int  j=0;j<=b;j++)
    {
     int t=n-i*10-j*5;
     if(t<0)return;
     if(t<=a)
     {
         flag=1;
         cnt_i=i;
         cnt_j=j;
         return;
     }
         
    }
  
}
int main()
{
 int n,a,b,c;
 while(cin>>n>>a>>b>>c)
 {
   if(n==0&&a==0&&b==0&&c==0)break;
   if(a>=n)
   {
     printf("%d YiJiao, %d WuJiao, and %d ShiJiao\n",n,0,0);
     continue;   
   }
   int t=n/5;
   if(!t)
   {
     printf("Hat cannot buy tea.\n");
     continue;  
   }
   flag=0;
   eg(a,b,c,n);
  if(flag)
     printf("%d YiJiao, %d WuJiao, and %d ShiJiao\n",n-cnt_i*10-cnt_j*5,cnt_j,cnt_i);
  else
     printf("Hat cannot buy tea.\n");
    
 }
 return 0;   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值