/*
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,提成10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分
提成7.5%;
利润高于20万到40万之间时,高于20万的部分提成5%;
40万到60万之间时,高于40万的部分提成3%;
60万到100万之间时,高于60万的部分提成1.5%;
高于100万元时,超过100万的部分按1%提成。
从键盘输入当月利润,求应发放的奖金总数.
*/
import java.io.*;
class MainClass
{
public static void main(String[] args) throws Exception
{
System.out.println("输入当月利润:");
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String reg = "\\d+";
for(String str = buf.readLine().trim();true; str = buf.readLine().trim())
{
if(str.isEmpty() == true)
continue;
if(str.equals("quit") == true)
System.exit(0);
System.out.println("Iamhere");
if(str.matches(reg) == true)
{
int n = Integer.parseInt(str);
double bonus = 0;
if(0<n && n<=10)
bonus = n*10/100.0;
else if(10<n && n<=20)
bonus = 10*10/100.0+(n-10)*7.5/100.0;
else if(10<n && n<=20)
bonus = 10*10/100.0+(n-10)*7.5/100.0;
else if(20<n && n<=40)
bonus = 10*10/100.0+10*7.5/100.0+(n-20)*5/100.0;
else if(40<n && n<=60)
bonus =10*10/100.0+10*7.5/100.0+20*5/100.0+(n-40)*3/100.0;
else if(60<n && n<=100)
bonus =10*10/100.0+10*7.5/100.0+20*5/100.0+20*3/100.0+(n-60)*1.5/100.0;
else if(100<n)
bonus =10*10/100.0+10*7.5/100.0+20*5/100.0+20*3/100.0+40*1.5/100.0+(n-100)*1/100.0;
else
System.out.println("利润不能为0");
System.out.println("当月奖金:"+bonus);
}
else
{
System.out.println("利润输入错误!!");
}
}
}
}
/*
0<x<=10 10% b=x*10%
10<x<=20 7.5% b=10*10%+(x-10)*7.5%
20<x<=40 5% b=10*10%+10*7.5%+(x-20)*5%
40<x<=60 3% b=10*10%+10*7.5%+20*5%+(x-40)*3%
60<x<=100 1.5% b=10*10%+10*7.5%+20*5%+20*3%+(x-60)*1.5%
100<x 1% b=10*10%+10*7.5%+20*5%+20*3%+40*1.5%+(x-100)*1%
为什么和答案的最后两部分的判断b不一样?哪里错了吗?
*/
java50题----12奖金
最新推荐文章于 2024-08-07 22:00:48 发布