已知某公司總?cè)藬?shù)為W,平均年齡為Y歲(每年3月末計(jì)算,同時(shí)每年3月初入職新人),假設(shè)每年離職率為x,x>0&&x<1,每年保持所有員工總數(shù)不變進(jìn)行招聘,新員工平均年齡21歲。
從今年3月末開始,請(qǐng)實(shí)現(xiàn)一個(gè)算法,可以計(jì)算出第N年后公司員工的平均年齡。(最后結(jié)果向上取整)。
import java.util.Scanner;
public class Main{
//該問題需要假設(shè)離職后剩下的老員工平均年齡不變,否則缺少條件
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:公司總?cè)藬?shù),在解題時(shí)沒有用到
double y = sc.nextDouble(); //y:當(dāng)年平均年齡
double x = sc.nextDouble(); //x:離職率
int n = sc.nextInt(); //n:n年后
System.out.println(averageAge(w,y,x,n)); // n年后公司員工的平均年齡
} while(sc.hasNext());
}
}