平均年龄-美团笔试
来源:互联网 发布:ubuntu terminator 编辑:程序博客网 时间:2024/05/19 21:42
已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。
从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(结果向上取整)。
输入:输入W Y x N
输出:平均年龄。
思路:这道题比较简单,利用数学思维做,时间复杂度为O(n),空间复杂度为O(1),具体做法计算从第一年到第N年的就可以了。题目已经给定新员工每年的年龄平均都是21岁,并且招聘的人数和离职的一样。所以可以得到如下公式:
y = 21*x+(1-x)*(y+1);
等式左边的y是当年平均年龄,右边的y是上一年所以要加1,x是离职率和入职率,21*x可以得到新员工的年龄平均率。
有上面的思路,写出代码如下:
package company;import java.util.Scanner;/** * 已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1, * 每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(结果向上取整)。 * Created by lizhaoz on 2016/4/13. */public class Avgage { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while(scanner.hasNext()){ int W=scanner.nextInt(); int Y=scanner.nextInt(); double x=scanner.nextDouble(); int N=scanner.nextInt(); int end=age(Y,x,N); System.out.println(end); } } private static int age(double y, double x, int n) { for(int i = 1;i<=n;i++){ y = 21*x+(1-x)*(y+1); } return (int)Math.ceil(y); }}
0 0
- 平均年龄-美团笔试
- 美团-平均年龄-Java
- 牛客网---2016---美团平均年龄
- 平均年龄
- 平均年龄
- 平均年龄
- 平均年龄
- 平均年龄(<cmath> 中 ceil 函数的应用)---- 美团2016研发工程师在线编程题
- 1001 求平均年龄
- 平均年龄(公式)
- 01:求平均年龄
- 平均年龄(数学计算)
- 算法题 平均年龄
- CCF NOI1022 平均年龄
- 01:求平均年龄
- 1. 求平均年龄
- CFF 1022 平均年龄
- 名企笔试题-棋子翻转、平均年龄、钓鱼比赛、最高分是多少
- ubuntu连接windows远程桌面
- [Java] 浅谈泛型的意义与不足
- 【LeetCode-1】Two Sum
- 173.When does a transaction complete? (Choose all that apply.)
- chromium源码下载并编译
- 平均年龄-美团笔试
- tomcat Server Locations 不可用 两种解决方式
- keystore 获取(常用命令行,SDK创建应用,找应用签名的方法)
- css基础效果
- sdk23_EditText:singleLine="true"过时及引发inputType="textPassword"失效
- HTML5 表单元素
- iOS资源大全
- 轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试
- 记一次sapjco 运行时错误排查