平均年龄

2017-02-27  本文已影响0人  XYZ7

已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。
从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(最后结果向上取整)。

import java.util.Scanner;

public class Main{

    //该问题需要假设离职后剩下的老员工平均年龄不变,否则缺少条件

    public static int averageAge(int w, double y, double x, int n) {
        for(int i = 0 ; i < n ; i++){
            y = (y + 1) * (1 - x) + 21 * x;
        }
        return (int)Math.ceil(y);
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        do {
            int w = sc.nextInt();       //w:公司总人数,在解题时没有用到
            double y = sc.nextDouble(); //y:当年平均年龄
            double x = sc.nextDouble(); //x:离职率
            int n = sc.nextInt();       //n:n年后
            System.out.println(averageAge(w,y,x,n));  // n年后公司员工的平均年龄
        } while(sc.hasNext());
    }
}
上一篇下一篇

猜你喜欢

热点阅读