3448:纳税光荣

时间限制:1 S   /  内存限制:8192 KB
AC:81   /  Submit:486
问题描述

某国实行阶梯税率,居民交税时,根据自己的年收入计算需要缴纳的税费。

采用阶梯计费,收入处于0~m1的部分,按r1的比例算该部分的税费;收入处于m1~m2的部分,按r2的比例计算该部分的税费;...;收入处于m5~m6的部分,按r6的比例计算该部分的税费;收入处于超过m6以上的部分,按r7的比例计算该部分的税费。

然后把所有部分的税费累加起来,就是该居民总共应缴纳的税费。

注意一定要看【提示说明】。

输入描述

多组案例。一个正整数n,表示案例的数量。(n<=100)

每组案例先是一个正整数a,表示居民的年收入,(a<=5000000)

然后是6个递增的正整数m1、m2、...、m6,(mi<=1000000)

最后是7个非负浮点数r1、r2、...、r7。(均小于1)

输出描述

针对每组案例,输出一个浮点数,表示该居民应缴纳的税费。精确到小数点后2位。

每组案例输出完要换行。

样例输入复制样例

1

200000

36000 144000 300000 420000 660000 960000

0.03 0.1 0.2 0.25 0.3 0.35 0.45

样例输出

23080


提示说明

样例中,200000的年收入,处于0~36000之间的收入共36000,按0.03比例纳税,36000*0.03=1080;处于36000~144000之间的收入共108000,按0.1的比例纳税,108000*0.1=10800;处于144000~300000之间的收入共56000,按0.2的比例纳税,56000*0.2=11200。故总纳税额是1080+10800+11200=23080,保留到小数点后2位还是23080。

输出23080.00也是正确的。

注意:由于cout指令对于比较大的浮点数是按科学计数法输出,存在巨大精度误差,因而需要改为使用printf指令,例如本题中如果最后的答案存储在double浮点变量ans中,则不要使用cout<<ans<<endl;输出,而是替换成printf("%.2lf\n",ans);输出。

来源
2021级C++上机考

Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1