Payment Without Change

Payment Without Change

题意:
q组实例,每组输入a,b,n,s;代表有 a 个 n 元的硬币,和 b 个 1 元硬币,问能不能凑够 s 元?

思路:先用足够数量的高价值硬币,剩下的用价值1的硬币判断并得出结果。

从两方面下手:
one、实际需要的 n 面值的硬币的个数 >= a(现在有的个数),
two、实际需要的 n 面值的硬币的个数 < a(现在由的个数)。
在这两种情况下,看 b 是否满足凑够 s。

#include<iostream>
using namespace std;
int main()
{
    long long q,a,b,n,s;
    cin>>q;
    while(q--)
    {
        cin>>a>>b>>n>>s;
        int k=0;
        k=s/n;
        if((k>=a&&b>=s-a*n)||(k<a&&b>=s-k*n))
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值