zoukankan      html  css  js  c++  java
  • 平均年龄

    平均年龄

    题目描述

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

    输入描述:

    输入W Y x N

    输出描述:

    输出第N年后的平均年龄
    示例1

    输入

    5 5 0.2 3

    输出

    15
     1 import java.util.Scanner;
     2  
     3 public class Main{
     4     //这个题着实让我弄了好一会,首先有三个误区,
     5     //第一个误区,每年在招纳新员工的同时,老员工的年龄是要增长的
     6     //第二个误区,为什么最后的公式与 W 无关。
     7     //第三个误区,是这个向上取整,题目给出的用例是5 5 0.2 3
     8     //然后我计算第一年的平均年龄是9,不用取整。
     9     //然后计算第二年的平均年龄是11.4,这时候我直接向上取整了,变成了12
    10     //所以下一年的平均年龄我误以为是12+1,导致我的计算结果不符合
    11     //其实题目是想让你把最后一年计算出来的年龄向上取整。
    12     //下面看一下代码
    13     public static int Average(int W ,double Y ,double x ,int N){
    14         //W表示公司总人数,Y表示当年平均年龄,x表示离职率,N表示多年以后
    15         for(int i = 0 ; i < N ; i++){
    16             //原始公式是这个Y = ((Y+1)*(W-W*x) + 21*(W*x))/W;
    17             //先求的离职之后还没有纳新时所有员工的总年龄,
    18             //记得Y+1,老员工也是要长大的
    19             //求得老员工的总年龄,然后加上纳新的员工的总年龄
    20             //最后除去公司的总人数,就是当年公司的平均年龄。
    21             //这个年龄是不进行向上取整的,而且我们发现这个公式是可以化简的
    22             //*************************************
    23             //下面是化简之后的公式,可以发现公式是与W没有关系的,
    24             //这就是为啥有的人纳闷为啥别人直接给出公式为啥与W无关,
    25             //但是自己又感觉最后公式肯定与W有关的原因了。
    26             //所以传参的时候可以不用传W。此处只是为了说明,
    27             Y = (Y+1)*(1-x)+21*x;
    28         }
    29         //最后对求得的结果进行向上取整。返回就OK了
    30         return (int) Math.ceil(Y);
    31     }
    32      
    33     public static void main(String[] args) {
    34         Scanner sc = new Scanner(System.in);
    35         do{
    36             int W = sc.nextInt();
    37             double Y = sc.nextDouble();
    38             double x = sc.nextDouble();
    39             int N = sc.nextInt();
    40             System.out.println(Average(W,Y,x,N));
    41         }while(sc.hasNext());
    42     }
    43 }
  • 相关阅读:
    2019.9.21 Tomcat基于端口的虚拟主机
    shell脚本作业
    DNS原理及其解析过程
    用户管理系统脚本
    pxe批量装机
    磁盘分区挂载脚本
    安装apache脚本
    linux远程拷贝命令及not a regular file 解决方案
    卸载虚拟网卡的方法
    watch的用法
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7728586.html
Copyright © 2011-2022 走看看