2022-6-7 真题练习

MT6 平均年龄
 
warning 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。

描述

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

输入描述:

输入W Y x N

输出描述:

输出第N年后的平均年龄
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4 
 5     public static void main(String[] args) {
 6         Scanner sc = new Scanner(System.in);
 7         while (sc.hasNext()){
 8             int w = sc.nextInt();
 9             double y = sc.nextDouble();
10             double x = sc.nextDouble();
11             int n = sc.nextInt();
12             sc.nextLine();
13             double leave=x*w;
14             double total=w*y;
15             for (int i=0;i<n;i++){
16                 y=total/w;
17                 total+=leave*(21-y);
18                 // 每过一年 原有公司的员工年龄要增加一岁
19                 total+=(w-leave);
20             }
21             System.out.println((int)Math.ceil(total/w));
22         }
23 
24     }
25 }

思路:主要是数据的中间计算不需要处理为整数,其次是每过一年 原有公司的员工年龄要增加一岁

posted on 2022-06-07 12:37  阿ming  阅读(46)  评论(0编辑  收藏  举报

导航