7-4 计算税率 (17 分)
美国联邦个人所得税是根据申报情况和应纳税所得额计算的。有四种申报情况:单身申报、已婚联合申报、已婚单独申报、户主申报。税率每年都不一样。下表即为假定税率计算方法,例如,某人单身申报,应纳税收入为10,000,则计算方法为:8,350的部分按10%计税,剩余的1,650的部分按158,350×10%+1,650×151,082.5。
你要写一个计算个人所得税的程序。程序应该首先输入申报状态和应纳税所得额并计算税款。其中,输入申报状态用整型数表示,0表示单身申报,1表示已婚联合申报,2表示已婚单独申报,3表示户主申报。应纳税所得金额用实型数表示。下表为具体的税率。
输入格式:
请在一行中输入申报情况和应纳税收入金额,其中,输入申报情况用整型数表示,正确取值范围为03;应纳税金额为实型数,正确取值范围为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) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int number1;
double number2;
number1 = input.nextInt();//number1表示申报情况
number2 = input.nextDouble();//number2表示收入
double money;//表示应纳税的数额
if(number2>=0)
{
if(number1 == 0)//单身申报
{
if(number2<8350)
{
money = number2*0.1;//835
}
else if(number2 <= 33950)
{
money = 835 + 0.15*(number2-8350);
}
else if(number2 <= 82250)
{
money = 4675 + 0.25*(number2 - 33950);
}
else if(number2 <= 171550)
{
money = 16750 + 0.28*(number2 - 82250);
}
else if(number2 <= 372950)
{
money = 41754 + 0.33*(number2 - 171550);
}
else
{
money = 108216 + 0.35* (number2 - 372950);
}
System.out.println(money);
}
else if(number1 == 1)//已婚联合申报
{
if(number2<=16700)
{
money = number2*0.1;
}
else if(number2 <= 67900)
{
money = 1670 + 0.15*(number2-16700);
}
else if(number2 <= 137050)
{
money = 9350 + 0.25*(number2 - 67900);
}
else if(number2 <= 208850)
{
money = 26637.5 + 0.28*(number2 - 137050);
}
else if(number2 <= 372950)
{
money = 46741.5 + 0.33*(number2 - 208850);
}
else
{
money = 100894.5 + 0.35* (number2 - 372950);
}
System.out.println(money);
}
else if(number1 == 2)//已婚单独申报
{
if(number2<=8350)
{
money = number2*0.1;
}
else if(number2 <= 33950)
{
money = 835 + 0.15*(number2-8350);
}
else if(number2 <= 68525)
{
money = 4675 + 0.25*(number2 - 33950);
}
else if(number2 <= 104425)
{
money = 13318.75 + 0.28*(number2 - 68525);
}
else if(number2 <= 186475)
{
money = 23370.75 + 0.33*(number2 - 104425);
}
else
{
money = 50447.25 + 0.35* (number2 - 186475);
}
System.out.println(money);
}
else if(number1 == 3)//户主申报
{
if(number2<=11950)
{
money = number2*0.1;
}
else if(number2 <= 45500)
{
money = 1195 + 0.15*(number2-11950);
}
else if(number2 <= 117450)
{
money = 6227.5 + 0.25*(number2 - 45500);
}
else if(number2 <= 190200)
{
money = 24215 + 0.28*(number2 - 117450);
}
else if(number2 <= 372950)
{
money =44585 + 0.33*(number2 - 190200);
}
else
{
money = 104892.5 + 0.35* (number2 - 372950);
}
System.out.println(money);
}
else
{
System.out.println("Wrong Format");
}
}
else
System.out.println("Wrong Format");
}//main
}