题目名称 269. [NOI 1998]个人所得税
输入输出 personaltax.in/out
难度等级
时间限制 500 ms (0.5 s)
内存限制 64 MiB
测试数据 5
题目来源 GravatarBYVoid 于2009-02-17加入
开放分组 全部用户
提交状态
分类标签
NOI 模拟
分享题解
通过:56, 提交:121, 通过率:46.28%
GravatarCzb。 100 0.000 s 0.00 MiB C++
Gravatarkaaala 100 0.000 s 0.00 MiB C++
GravatarBYVoid 100 0.000 s 0.00 MiB C++
Gravatarcstdio 100 0.000 s 0.00 MiB C++
GravatarNARUTO 100 0.000 s 0.00 MiB C++
GravatarspadeK 100 0.000 s 0.00 MiB C
GravatarWang Yen Jen 100 0.000 s 0.00 MiB C++
GravatarExtreme°/极致 ° 100 0.000 s 0.00 MiB C++
Gravatar八级大狂风 100 0.000 s 0.00 MiB C++
GravatarImwaOuKur 100 0.000 s 0.00 MiB C++
本题关联比赛
20111102
20111102
20091112练习
EYOI与SBOI开学欢乐赛2nd
关于 个人所得税 的近10条评论(全部评论)
Gravatar软软糖
2017-11-06 10:03 10楼
数据中间多空格,坑死PASCAL。。
GravatarC语言入门
2013-11-05 18:04 9楼
@cstdio 我用字符串读入,所以需要转换成数字。。。然后就用pow了= =。。。
Gravatarraywzy
2013-11-05 14:12 8楼
@raywzy 大神何用pow??!!
Gravatarcstdio
2013-11-05 11:39 7楼
用pow函数时会损失精度,手打幂运算。。。。。好吧比赛的时候不想写了。。其实还好= =。。
Gravatarraywzy
2013-11-04 23:39 6楼
这题对pascaler就是坑!不仅是模拟,还很考验字符串处理……注意数据中,同一行的两个元素中间可能有多个空格!
Gravatar赵寒烨
2013-11-04 22:31 5楼
对程序要求好严格……比赛时ce了TAT
Gravatar钨铅
2013-11-04 22:23 4楼
这题写的眼疼= =
Gravatarcstdio
2013-04-25 20:55 3楼
感谢Truth,感谢人民,感谢TV,让我过了
Gravatar苏轼
2011-11-03 15:47 2楼
开数组存每个员工每个月的收入(PAY),最后再计算,
遇到单个的(INCOME)就直接计算,
话说这道题的读入,就是让用scanf的,
scanf具体用法可咨询:http://user.qzone.qq.com/337207188,日志
GravatarTruth.Cirno
2011-11-03 14:30 1楼

269. [NOI 1998]个人所得税

★   输入文件:personaltax.in   输出文件:personaltax.out   简单对比
时间限制:0.5 s   内存限制:64 MiB

【题目描述】

某国个人所得税法规定,普通公民的主要应纳税收入项目及纳税金额如下:

工资、薪金所得。按月计算征税,以每月收入额减除费用$800$元后的余额作为该月应纳税所得额,税率如下表所示:

级数	月应纳税所得额 			税率(%)
1	不超过500元的			5
2	超过500元~2000元的部分    	10
3	超过2000元~5000元的部分    	15
4	超过5000元~20000元的部分	20
5	超过20000元~40000元的部分	25
6	超过40000元~60000元的部分	30
7	超过60000元~80000元的部分	35
8	超过80000元~100000元的部分	40
9	超过100000元的部分		45

一次性劳动报酬所得。按次计算征税,每次不超过$4000$元的,减除费用$800$元;$4000$元以上的,减除$20$%的费用,余额为应纳税所得额。征税税率如下表所示:

级数	每次应纳税所得额	    税率(%)
1	不超过20000元的部分	    20
2	超过20000元~50000元的部分    30
3	超过50000元的部分	    40

由上面可以看出,个人工资、薪金及一次性劳动报酬所得都是按照超额累进税率来征税的。超额累进税率将应纳税所得额按数额大小分成若干等级,每一等级 规定一个税率,税率依次提高,但每一纳税人的的应纳税所得额依照所属等级同时适用几个税率分别计算,将计算结果相加后的总额作为应纳税款。

例如,某人某月工资总额为$3800$元,减去$800$元后,应纳税所得额为$3000$元。其中$1$级$500$元,$2$级$1500$元,$3$级$1000$元, 税率分别为$5$%、$10$%、$15$%,应纳税总额为$500$*$5$%+$1500$*$10$%+$1000$*$15$%=$325$(元)。现在需要你编一程序,根据该国某公司的 所有职员一年内的各项收入信息(收入项目、收入时间、收入金额)计算该公司所有职员这一年应交纳的个人所得税总额。

【输入格式】

第一行为一个正整数$M(M<= 50000)$,表示该公司的职员总数(职员编号依次为$1,2,…,M$)。接下来的各行每行表示一年内某一个职员的一项收入信息,收入信息最多不超过$10000$行。

具体格式如下:

$工资、薪金收入信息:$PAY 职员编号 收入时间 收入金额

$一次性劳务报酬收入信息:$INCOME 职员编号 收入时间 收入金额


其中,收入时间格式为:$MM$/$DD$,$MM$表示月份($1<= MM<=12$),$DD$表示日期($1<= DD<=31$);收入金额是一个正整数(单位:元),并假设每人每项收入金额小于$100$万元,每人收入总金额不超过32位整数范围。

输入文件以字符“#”表示结束。输入文件中同一行相邻两项之间用一个或多个空格隔开。

【输出格式】

输出文件只有一个正数$P$(保留两位小数),$P$表示该公司所有职员一年内应交纳的个人所得税总额(单位:元)。

【样例输入】

2
PAY 1 2/23 3800 
INCOME 2 4/8 4010
INCOME 2 4/18 800
PAY 1 8/14 6700
PAY 1 8/10 1200
PAY 2 12/10 20000
#

【样例输出】

5476.60

【来源】

$NOI$