• java:根据利润表计算奖金所得


    代码实现:

    public class Hello {
    	public static void main(String srgs[]) {
                Lirun(100);
    	    Lirun2(100);
            }
    
            public static double Lirun(double lirun) {
    		/**
    		 * 输入lirun的单位为万元
    		 */
    		double sum = 0;
    		if (lirun <= 10) {
    			sum = lirun * 0.1;
    
    		} else if (lirun > 10 && lirun <= 20) {
    			sum = (lirun - 10) * 0.075 + 10 * 0.1;
    		} else if (lirun > 20 && lirun <= 40) {
    			sum = (lirun - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
    		} else if (lirun > 40 && lirun <= 60) {
    			sum = (lirun - 40) * 0.03 + (40 - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
    		} else if (lirun > 60 && lirun <= 100) {
    			sum = (lirun - 60) * 0.015 + (60 - 40) * 0.03 + (40 - 20) * 0.05 + (20 - 10) * 0.075 + 10 * 0.1;
    		} else if (lirun > 100) {
    			sum = (lirun - 100) * 0.001 + (100 - 60) * 0.015 + (60 - 40) * 0.03 + (40 - 20) * 0.05 + (20 - 10) * 0.075
    					+ 10 * 0.1;
    		}
    		System.out.println("当前利润为:" + lirun + "万元,应得奖金为:" + sum + "万元!");
    		return sum;
    	}
    
    	public static double Lirun2(double lirun) {
    		/**
    		 * 输入lirun的单位为万元 定义两个double类型的数组,分别存入利润值分段和对应的奖金比例。
    		 */
    		double sum = 0;
    		double tmp = lirun; // 定义一个临时变量
    		boolean flag = false; // 定义一个flag,用来标记是否已经找到利润值表的对应元素,然后根据这个flag进行下一个阶段的奖金值计算
    		double[] lirunArr = { 10, 20, 40, 60, 100 };
    		double[] Arrnum = { 0.1, 0.075, 0.05, 0.03, 0.015 };
    		for (int i = lirunArr.length - 1; i >= 0; i--) { // 遍历利润值
    			if (tmp > lirunArr[i]) { // 判断当前的临时变量(输入的利润值)是否大于利润值表的最大元素,目的找到输入的利润值的取值范围
    				tmp = tmp - lirunArr[i];
    				sum += tmp * Arrnum[i];
    				flag = true;
    			} else if (flag && i >= 1) { // 按照利润值表中各阶段对应的奖金比例计算奖金。
    				tmp = lirunArr[i] - lirunArr[i - 1];
    				sum += tmp * Arrnum[i];
    			} else if (i == 0) { // 理论上需要定义数组时输入一个0的元素,但是如果不定义,那就得利用i==0的特殊情况进行区别处理,以处理第二阶段数组越界的情况。
    				tmp = lirunArr[i];
    				sum += tmp * Arrnum[i];
    			}
    
    //			System.out.println("i=" + i + ";tmp=" + tmp + ";sum=" + sum);
    		}
    		System.out.println("当前利润为:" + lirun + "万元,应得奖金为:" + sum + "万元!");
    		return sum;
    	}
    }
    

      

  • 相关阅读:
    Android编码规范03
    Android编码规范02
    Android编码规范01
    函数返回值类型为枚举类型
    ObjectAnimator属性动画应用demo
    n个元素的入栈顺序有多少种出栈顺序?
    JNI笔记1
    字符串——面试题1:统计一行字符中有多少个单词?
    快速排序算法
    es6之 async await 使用小计
  • 原文地址:https://www.cnblogs.com/songqingbo/p/10634926.html
Copyright © 2020-2023  润新知