华东交大2013“双基”程序设计大赛--1002
来源:互联网 发布:见一落叶而知岁之将暮 编辑:程序博客网 时间:2024/04/30 14:32
Go shopping
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 622 Accepted Submission(s) : 35
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
最近Awell的运气特别好,这不,他在路边摊买彩票,居然中了大奖。秉着见者有份的原则,他准备请咱们学校ACM-ICPC训练基地的全体队员逛商场。
赶巧交大旁边有一家商场新店开张,正在进行打折促销活动。于是,咱们所有队员都在商场中大肆购买之后,在收银台前排起了长队。
话说回来,这家商场的打折方式有些奇怪:他们从在收银台前付账的所有n位顾客中,每隔m名顾客便挑选一位顾客享受七五折优惠,其余顾客只能享受九五折。
为了方便付账,Awell拜托老板将付账者的姓名和付款金额打印出来,作为参考。
你需要注意的是,在收银台前长长的队伍中,有的可不止是ACM队员,同样,还有很多交大的同学慕名前来消费。为了区分他们,我们规定,所有ACM队员必须在姓名前加上前缀“ACM”(不包含双引号,且不存在非ACM队员的同学名字前面出现ACM字样)。
现在,请机智的你为Awell编写一个小程序,算一算他总共需要花费多少钱呢?
赶巧交大旁边有一家商场新店开张,正在进行打折促销活动。于是,咱们所有队员都在商场中大肆购买之后,在收银台前排起了长队。
话说回来,这家商场的打折方式有些奇怪:他们从在收银台前付账的所有n位顾客中,每隔m名顾客便挑选一位顾客享受七五折优惠,其余顾客只能享受九五折。
为了方便付账,Awell拜托老板将付账者的姓名和付款金额打印出来,作为参考。
你需要注意的是,在收银台前长长的队伍中,有的可不止是ACM队员,同样,还有很多交大的同学慕名前来消费。为了区分他们,我们规定,所有ACM队员必须在姓名前加上前缀“ACM”(不包含双引号,且不存在非ACM队员的同学名字前面出现ACM字样)。
现在,请机智的你为Awell编写一个小程序,算一算他总共需要花费多少钱呢?
Input
输入数据包含多组,每组第一行有两个整数n,m。分别代表着在收银台前队伍的全部人数,以及商家将会选择每第m位顾客打7.5折。
你可以通过
while(scanf(......)!=EOF)
{
……;
}
的形式进行输入。接下来有n行,每行将会输入消费者的姓名(长度不超过20个字符),以及他们各自消费的金额(以“元”位单位,最高可能精确到小数点后两位)。
你可以通过
while(scanf(......)!=EOF)
{
……;
}
的形式进行输入。接下来有n行,每行将会输入消费者的姓名(长度不超过20个字符),以及他们各自消费的金额(以“元”位单位,最高可能精确到小数点后两位)。
Output
每组数据输出一行,每行一个实数,表示Awell总共需要花费多少开销。你应该注意的是,老板只收取“角”作为最小单位,而且他是一个锱铢必较的人,所以,如果你所付金额中存在小于0.1元的部分,那就至少要付0.1元给他(想着即将消瘦的钱包,Awell泪目中......O(∩_∩)O~~)
Sample Input
4 2Newee 123.12ACMAwell 100PRO 345.5Sirius 456.995 2Newee 123.12ACMAwell 100PROPHET 345.5Sirius 456.99ACMProphetK 100
Sample Output
75.0170.0
题解 :
题目的思路很简单,就是通过判断哪个是ACM队员,并且是否享受7.5折优惠,通过累加得到最后的值。值得注意的是:因为输入的小数最多为2位,乘上0.75或0.95,累加之后最多为4位小数,所以只需要在运算结果上加上0.0499即可保证小于0.1的部分可以进位。很多人想了很多种方法解决进位的问题,也不大了解为什么加上0.0499后可以确保小于0.1的部分可以进位。其实这里面隐含了一个平时常用但不被注意的知识点。即:printf("%.1f",result);这里面.1f的功能是输出保留小数点后一位,并且它的输出有四舍五入的功能。换句话说如果1.01则输出1.0;1.06则输出1.1;所以任何小于0.1的部分加上0.0499后都将>=0.05,所以输出时都将进1.符合题目要求。
#include<stdio.h> int main() { int n,m,i; double sum,s; char name[21]; while(scanf("%d%d",&n,&m)!=EOF) { sum=0; for(i=1;i<=n;i++) { scanf("%s%lf",name,&s); if(name[0]=='A'&&name[1]=='C'&&name[2]=='M') { if(i%m==0) sum+=s*0.75; else sum+=s*0.95; } } printf("%.1f\n",sum+0.0499); } return 0; }
- 华东交大2013“双基”程序设计大赛--1002
- 华东交大的课程设计
- 华东交大友谊赛
- 华东交通大学2013年ACM“双基”程序设计竞赛 解题报告
- 华东交通大学2013ACM“双基”程序设计竞赛 解题报告
- 华东交通大学2013年ACM“双基”程序设计竞赛获奖公示
- 华东交通大学2013年ACM“双基”程序设计竞赛
- 华东交通大学2014年ACM“双基”程序设计竞赛解题报告
- 华东交通大学2014年ACM“双基”程序设计竞赛解题报告
- 华东交通大学2015年ACM“双基”程序设计竞赛
- 华东交通大学2016年ACM“双基”程序设计竞赛
- 软测大赛(华东赛区)有感
- 程序设计大赛
- 程序设计大赛
- 华东交通大学2014年ACM“双基”程序设计竞赛部分解题报告
- 华东交通大学2014年ACM“双基”程序设计竞赛(部分水题)
- 华东交通大学2016年ACM“双基”程序设计竞赛 A:简单题
- 华东交通大学2016年ACM“双基”程序设计竞赛 H:毛线数列最值
- 玻璃瓶盖买家怎样区分玻璃瓶盖是手工机工艺还是行列机生产
- [MySQL参数取值] Status取值ERROR 1193 (HY000): Unknown system variable 'Innodb_buffer_pool_read_requests'
- MFC 启动其他程序 路径问题
- 给大家分享一款学习sql语句的工具--DBeaver
- 做练习的随笔
- 华东交大2013“双基”程序设计大赛--1002
- 黑马程序员_交通灯系统实例
- Spring中Propagation类的事务属性详解
- MySQL 常用sql语句
- 图片宽度自适应浏览器宽度
- UIScrollView的属性总结
- iOS 开发之Resize UIimage的三种方法
- vtbl(虚函数表)与vptr(虚函数表指针)
- oracle安装报错:libXp.so.6: cannot open shared object file: No such file or directory