CSUST 1530 快速找钱

本文介绍了一种快速找零算法,旨在解决零售业中常见的找零问题。通过使用最少数量的硬币来完成找零过程,该算法能有效减少交易时间和成本。文章详细描述了输入输出格式、样例输入输出,并提供了C++实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎来到CSUST Online Judge System

1530: 快速找钱

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 5   Solved: 3

Description

老王的杂货店雇用了一个便宜的伙计来看店子.他雇用的伙计(通常是高中生)经常在找钱的时候出错.吝啬的老王认为由于伙计的错误造成的经济损失比他自己的错误造成的经济损失大,也就是伙计容易找更多的零钱给顾客.

老王想让你写一个程序计算一个顾客能得到的零钱.零钱由0.25美圆硬币,0.1美圆硬币,0.05美圆硬币和0.01美圆硬币组成.当顾客的零钱小于5美圆时,希望给顾客硬币,并且硬币的总数最少.比如如果零钱为1.24美圆,顾客应该得到4个0.25硬币,2个0.1硬币,0个0.05硬币,4个0.01硬币.

Input

第一行包含一个整数N,表示测试用例个数.每一个测试用例占一行,包含一个整数C,表示顾客应得到的零钱(单位:美分)(1<=C<=500).

Output

对每一个测试用例,输出测试用例号,空格和字符串

Q QUARTER(S) ,D DIME(S), n NICKEL(S), P PENNY(S)

其中Q是0.25美圆硬币的个数,D是0.1美圆硬币的个数,n是0.05美圆的硬币的个数,P是0.01美圆硬币的个数.

Sample Input

312425194

Sample Output

1 4 QUARTER(S), 2 DIME(S), 0 NICKEL(S), 4 PENNY(S)2 1 QUARTER(S), 0 DIME(S), 0 NICKEL(S), 0 PENNY(S)3 7 QUARTER(S), 1 DIME(S), 1 NICKEL(S), 4 PENNY(S)

HINT

Source


签到题,不解释

Accepted
916
0
C++/Edit719 B2013-05-08 20:00:49

#include<stdio.h>
int main()
{
    int n;
    int total;
    scanf("%d", &n);
    for(int i = 1; i <= n; i++)
    {
        int q, d, n, p;
        q = d = n = p = 0;
        scanf("%d", &total);
        if(total >= 25)
        {
            q = total/25;
            total = total - q*25;
        }
        if(total >= 10)
        {
            d = total/10;
            total -= d*10;
        }
        if(total >= 5)
        {
            n = total/5;
            total -= n*5;
        }
        p = total;
        printf("%d %d QUARTER(S), %d DIME(S), %d NICKEL(S), %d PENNY(S)\n",i,q,d,n,p);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值