Java50道经典习题-程序12 计算奖金

题目:企业发放的奖金根据利润提成。
利润(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%提成,
从键盘输入当月利润I,求应发放奖金总数? 
分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

 1 import java.util.Scanner;
 2 public class Prog12 {
 3     public static void main(String[] args) {
 4         Scanner scan=new Scanner(System.in);
 5         System.out.println("请输入当月利润:");
 6         double profit=scan.nextDouble();
 7         scan.close();
 8         System.out.println("应发奖金:"+prize(profit));
 9     }
10     //计算奖金
11     private static double prize(double profit) {
12         double prize=0;
13         if(profit<=100000) {//低于或等于10万元时
14             prize=profit*0.1;
15         }else if(profit<200000) {//高于10万元,低于20万元时
16             prize=(profit-100000)*0.075+100000*0.1;
17         }else if(profit<400000) {//20万到40万之间时
18             prize=(profit-200000)*0.05+100000*0.75+100000*0.1;
19         }else if(profit<600000) {//40万到60万之间时
20             prize=(profit-400000)*0.03+200000*0.05+100000*0.75+100000*0.1;
21         }else if(profit<1000000) {//60万到100万之间时
22             prize=(profit-600000)*0.015+200000*0.03+200000*0.05+100000*0.75+100000*0.1;
23         }else {//高于100万元时
24             prize=(prize-1000000)*0.01+400000*0.015+200000*0.03+200000*0.05+100000*0.75+100000*0.1;
25         }
26         return prize;
27
28     }
29 }
30 /*运行结果
31 请输入当月利润:
32 500000
33 应发奖金:98000.0
34 */

原文地址:https://www.cnblogs.com/parkour1026/p/10796851.html

时间: 2024-10-08 14:16:00

Java50道经典习题-程序12 计算奖金的相关文章

Java50道经典习题-程序8 输入数字求和

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 分析:关键是计算出每一项的值. 1 import java.util.Scanner; 2 public class Prog8{ 3 public static void main(String[] args){ 4 System.out.print("求s=a+aa+aaa+aaaa+...的值,请输入a的值:");

Java50道经典习题-程序18 乒乓球赛

题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.分析:如果是人经过逻辑推理可以很快的得到结论.但是计算机处理此问题,不可能立即得出结论,而必须对每一种组合一一验证,找出符合条件的组合. 假设甲队a,b,c的对手分别是i,j,k i,j,k互不相等并且分别都是乙队x,y,z中的一人 利用三重for循环保证i,j,k互不相等 再将题设条件“a说他不和x比,

Java50道经典习题-程序11 求不重复数字

题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 1 public class Prog11 { 2 public static void main(String[] args) { 3 int count=0; 4 int n=0; 5 for(int i=1;i<5;i++) { 6 for(int j=1;j<5;j++) { 7 if(i==j) 8 con

Java50道经典习题-程序10 自由落体

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 1 import java.util.Scanner; 2 public class Prog10 { 3 public static void main(String[] args) { 4 System.out.println("请输入小球落地时的高度和求解的次数:"); 5 Scanner scan=new Scanner(System.in); 6

Java50道经典习题-程序22 递归求阶乘

题目:利用递归方法求5!.分析:递归公式:n*factorial(n-1); 1 public class Prog22 { 2 public static void main(String[] args) { 3 System.out.println(factorial(5)); 4 } 5 //递归求阶乘 6 public static long factorial(int n) { 7 if(n==0||n==1) { 8 return 1L; 9 } 10 return n*factor

Java50道经典习题-程序13 根据条件求数字

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?分析:完全平方数:如果一个数能是由两个相同的数相乘的结果,那么这个数就是完全平方数,例如:9==3*3:9就是完全平方数.在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果. 1 public class Prog13 { 2 public static void main(String[] args) { 3 int n=0; 4 for

Java50道经典习题-程序9 求完数

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 1 public class Prog9 { 2 public static void main(String[] args) { 3 int n=1000; 4 compNumber(n); 5 } 6 //求完数 7 private static void compNumber(int n) { 8 System.out.println(n+"以内的完数:&q

Java50道经典习题-程序20 求前20项之和

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.分析:请抓住分子与分母的变化规律.三个连续分数之间的规律是:上两个分子之和等于第三个分数的分子,上两个分母之和等于第三个分数的分母 1 public class Prog20{ 2 public static void main(String[] args){ 3 double n1 = 1; 4 double n2 = 1; 5 double fraction = n1/n2; 6 dou

Java50道经典习题-程序16 在控制台上打印九九乘法表

题目:输出9*9口诀.分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列. 1 public class Prog16 { 2 public static void main(String[] args) { 3 for(int i=1;i<10;i++) { 4 for(int j=1;j<i+1;j++) { 5 System.out.print(j+"*"+i+"="+(j*i)+"\t");//使用