/* 名企招聘:2016美团研发工程师笔试题 已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人), 假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(结果向上取整)。*/#include<stdio.h>float x = 0.2;int Y0 = 30;int GetAverageYear(int year);int main(void){ int year = 5; PRintf("%d年之员工的平均年龄为%d/n",year,GetAverageYear(1)); return 0;}/************************************************ 函数 名 : GetAverageYear* Parameter:int year* 函数说明:算法的状态方程为: Y(i)=(1-x)*Y(i-1)+21*x 结束条件为:Y > 0;* 返回值 : int* 作者 : qiaqia* 创建时间:2017/02/16***********************************************/int GetAverageYear(int year){ float tmp_float = 0.0; int tmp_int = 0; if (year>0) { tmp_float = (1 - x)*GetAverageYear(year - 1) + 21 * x; tmp_int = (tmp_float - (int)tmp_float > 0.0) ? (int)tmp_float + 1 : (int)tmp_float; return tmp_int; }else { return Y0; }}
新闻热点
疑难解答