问题标题: 酷町堂:1753

0
0
已解决
李奕歌
李奕歌
初级天翼
初级天翼

题目描述 Description

当一个人一个月的工资超过一定额度的时候,就需要向国家上交一部分钱,这部分钱就叫做个人所得税。交税的标准是这样的:3500元以下的(包括3500)不交税;超过3500,不超过5000的,超出部分缴纳3%;超过5000,不超过8000的,超出部分缴纳10%;超过8000,不超过12500的,超出部分缴纳20%;超过12500,不超过38500的,超出部分缴纳25%;超过38500,不超过58500的,超出部分缴纳30%;超过58500,不超过83500的,超出部分缴纳35%;超过83500的,超出部分缴纳45%;李叔叔这个月的工资是数为a,请计算他需要缴纳多少税款?

输入描述 Input Description

工资数a,a为整数

输出描述 Output Description

缴纳的税款,保留两位小数,四舍五入

样例输入 Sample Input

样例一:3500 样例二:10000

样例输出 Sample Output

样例一:0.00 样例二:745.00

数据范围及提示 Data Size & Hint

1500 * 0.03+3000 * 0.1+2000 * 0.2=745

WA90

#include<iostream>
#include<cstdio>
#include<cmath>
#include<iomanip>
using namespace std;
int main(){
    long long a;
    double f;
    cin>>a;
    if(a<=3500){
        cout<<0<<".00";
        return 0;
    }
    else if(a<=5000){
        f=(long long)((a-3500.0)*0.03*100.0+0.5)/100.0;
    }
    else if(a<=8000){
        f=(long long)((1500.0*0.03+(a-5000.0)*0.1)*100.0+0.5)/100.0;
    }
    else if(a<=12500){
        f=(long long)((1500.0*0.03+3000.0*0.1+(a-8000.0)*0.2)*100.0+0.5)/100.0;
    }
    else if(a<=38500){
        f=(long long)((1500.0*0.03+3000.0*0.1+4500.0*0.2+(a-12500.0)*0.25)*100.0+0.5)/100.0;
    }
    else if(a<=58500){
        f=(long long)((1500.0*0.03+3000.0*0.1+4500.0*0.2+26000.0*0.25+(a-38500.0)*0.3)*100.0+0.5)/100.0;
    }
    else if(a<=83500){
        f=(long long)((1500.0*0.03+3000.0*0.1+4500.0*0.2+26000.0*0.25+20000.0*0.3+(a-58500.0)*0.35)*100.0+0.5)/100.0;
    }
    else{
        f=(long long)((1500.0*0.03+3000.0*0.1+4500.0*0.2+26000.0*0.25+20000.0*0.3+15000.0*0.35+(a-83500.0)*0.45)*100.0+0.5)/100.0;
    }
    printf("%.2f",f);
    return 0;
}

 


0
已采纳
朱小川
朱小川
缔造者
缔造者

if(a<=3500){ x=0; }else if(a>3500&&a<5000){ x=a*0.03; }else if(a>5000&&a<=8000){ x=1500*0.03+(a-5000)*0.1; }else if(a>8000&&a<=12500){ x=1500*0.03+3000*0.1+(a-8000)*0.2; }else if(a>12500&&a<=38500){ x=1500*0.03+3000*0.1+4500*0.2+(a-12500)*0.25; }else if(a>38500&&a<=58500){ x=1500*0.03+3000*0.1+4500*0.2+26000*0.25+(a-38500)*0.3; }else if(a>58500&&a<=83500){ x=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+(a-58500)*0.35; }else if(a>83500){ x=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+25000*0.35+(a-83500)*0.45; }else if(a==5000){ x=45.00; } printf("%.2f",x);

核心

朱小川在2021-07-04 18:52:51追加了内容

记住,要定义double类型的

我要回答