2022-6-7 真题练习
作者:互联网
MT6 平均年龄
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
从今年 3 月末开始,请实现一个算法,可以计算出第 N 年后公司员工的平均年龄。(最后结果向上取整)。 数据范围: 1 \le W \le 1000 \1≤W≤1000 ,1 \le Y \le 30 \1≤Y≤30 , 0 < x < 1 \0<x<1 ,1 \le N \le 100 \1≤N≤100
描述
已知某公司总人数为 W ,平均年龄为 Y 岁(每年 3 月末计算,同时每年 3 月初入职新人),假设每年离职率为 x , x > 0 && x < 1 ,每年保持所有员工总数不变进行招聘,新员工平均年龄 21 岁。从今年 3 月末开始,请实现一个算法,可以计算出第 N 年后公司员工的平均年龄。(最后结果向上取整)。 数据范围: 1 \le W \le 1000 \1≤W≤1000 ,1 \le Y \le 30 \1≤Y≤30 , 0 < x < 1 \0<x<1 ,1 \le N \le 100 \1≤N≤100
输入描述:
输入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 }
思路:主要是数据的中间计算不需要处理为整数,其次是每过一年 原有公司的员工年龄要增加一岁
标签:le,Scanner,真题,int,double,平均年龄,练习,2022,sc 来源: https://www.cnblogs.com/benbicao/p/16351351.html