题目地址:
https://www.acwing.com/problem/content/674/
读取一个保留两位小数的浮点数值,表示一个公民的工资。在公民缴纳个人所得税时,不同收入部分需要缴税的税率也是不同的。请根据下表确定该公民需要缴纳的个人所得税是多少。
输入格式:
共一行,包含一个浮点数。
输出格式:
如果公民需要缴税,则输出所需缴纳的税额。输出格式为R$ X
,其中
X
X
X为个税的金额,保留两位小数。如果公民不需要缴税,则输出Isento
。
数据范围:
0
≤
公
民
工
资
≤
5000
0≤公民工资≤5000
0≤公民工资≤5000
代码如下:
#include <iostream>
using namespace std;
int main() {
double x;
cin >> x;
double res = 0;
if (x <= 2000) puts("Isento");
else if (x <= 3000) res = (x - 2000) * 0.08;
else if (x <= 4500) res = 1000 * 0.08 + (x - 3000) * 0.18;
else res = 1000 * 0.08 + 1500 * 0.18 + (x - 4500) * 0.28;
if (res > 1e-9) printf("R$ %.2lf", res);
return 0;
}
时空复杂度 O ( 1 ) O(1) O(1)。