PTA 计算税率 (Java)

计算税率

描述:
美国联邦个人所得税是根据申报情况和应纳税所得额计算的。有四种申报情况:单身申报、已婚联合申报、已婚单独申报、户主申报。税率每年都不一样。下表即为假定税率计算方法,例如,某人单身申报,应纳税收入为$10,000,则计算方法为:$8,350的部分按10%计税,剩余的$1,650的部分按15%计税,因此其应缴税额为:$8,350×10%+$1,650×15%=$1,082.5。

你要写一个计算个人所得税的程序。程序应该首先输入申报状态和应纳税所得额并计算税款。其中,输入申报状态用整型数表示,0表示单身申报,1表示已婚联合申报,2表示已婚单独申报,3表示户主申报。应纳税所得金额用实型数表示。下表为具体的税率。

计算税率1.jpg

输入格式:
请在一行中输入申报情况和应纳税收入金额,其中,输入申报情况用整型数表示,正确取值范围为(0,3);应纳税金额为实型数,正确取值范围为0~+∞。

输出格式:
(1)当输入数据合法时,输出应纳税金额,实型数; (2)当输入数据非法时,输出字符串“Wrong Format”

输入样例1:

0 0

输出样例1:

0.0

输入样例2:

0 100000

输出样例2:

21720.0

输入样例3:

5 100000

输出样例3:

Wrong Format


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int chioce=in.nextInt();
        int money=in.nextInt();
        int a,b,c,d,e;//根据输入的申报状态,修改a,b,c,d,e
        double sum=0;
        if(money>=0){
        switch(chioce)
        {
            case 0:
                a=8350;
                b=33950;
                c=82250;
                d=171550;
                e=372950;
                if(money<=a)//10%
                    sum=money*0.1;
                if(money>a&&money<=b)//15%
                    sum=a*0.1+(money-a)*0.15;
                if(money>b&&money<=c)//25%
                    sum=a*0.1+(b-a)*0.15+(money-b)*0.25;
                if(money>c&&money<=d)//28%
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(money-c)*0.28;
                if(money>d&&money<=e)//33%
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(money-d)*0.33;
                if(money>e)//35%
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(e-d)*0.33+(money-e)*0.35;
                System.out.println(sum);
                break;
            case 1:
                a=16700;
                b=67900;
                c=137050;
                d=208850;
                e=372950;
                if(money<=a)
                    sum=money*0.1;
                if(money>a&&money<=b)
                    sum=a*0.1+(money-a)*0.15;
                if(money>b&&money<=c)
                    sum=a*0.1+(b-a)*0.15+(money-b)*0.25;
                if(money>c&&money<=d)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(money-c)*0.28;
                if(money>d&&money<=e)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(money-d)*0.33;
                if(money>e)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(e-d)*0.33+(money-e)*0.35;
                System.out.println(sum);
                break;
            case 2:
                a=8350;
                b=33950;
                c=68525;
                d=104425;
                e=186475;
                if(money<=a)
                    sum=money*0.1;
                if(money>a&&money<=b)
                    sum=a*0.1+(money-a)*0.15;
                if(money>b&&money<=c)
                    sum=a*0.1+(b-a)*0.15+(money-b)*0.25;
                if(money>c&&money<=d)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(money-c)*0.28;
                if(money>d&&money<=e)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(money-d)*0.33;
                if(money>e)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(e-d)*0.33+(money-e)*0.35;
                System.out.println(sum);
                break;
            case 3:
                a=11950;
                b=45500;
                c=117450;
                d=190200;
                e=372950;
                if(money<=a)
                    sum=money*0.1;
                if(money>a&&money<=b)
                    sum=a*0.1+(money-a)*0.15;
                if(money>b&&money<=c)
                    sum=a*0.1+(b-a)*0.15+(money-b)*0.25;
                if(money>c&&money<=d)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(money-c)*0.28;
                if(money>d&&money<=e)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(money-d)*0.33;
                if(money>e)
                    sum=a*0.1+(b-a)*0.15+(c-b)*0.25+(d-c)*0.28+(e-d)*0.33+(money-e)*0.35;
                System.out.println(sum);
                break;
            default:
                System.out.println("Wrong Format");
                break;
        }
        }
       else
           System.out.println("Wrong Format");
    }
}




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值