MT6. 平均年龄
描述
已知某公司总人数为 W ,平均年龄为 Y 岁(每年 3 月末计算,同时每年 3 月初入职新人),假设每年离职率为 x , x > 0 && x < 1 ,每年保持所有员工总数不变进行招聘,新员工平均年龄 21 岁。输入描述
输入W Y x N输出描述
输出第N年后的平均年龄示例1
输入:
5 5 0.2 3
输出:
15
C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2021-08-13
#include<stdio.h> #include<math.h> int main () { int total,n,result; float x,age; while(scanf("%d %f %f %d",&total,&age,&x,&n)!=EOF) { int i; for(i=1;i<=n;i++) age=((1-x)*(age+1)+x*21); result=ceil(age); printf("%d\n",result); } }
C 解法, 执行用时: 2ms, 内存消耗: 372KB, 提交时间: 2020-08-14
#include<stdio.h> #include<math.h> //nl(今年) = (nl(去年)+1)*(1-x)+x*21 int main() { int W, N; double Y; double x; double d_ave; while (scanf("%d %lf %lf %d", &W, &Y, &x, &N) == 4) { for (int i = 0; i < N; i++) { d_ave = (1 - x)*Y + 20 * x + 1; Y = d_ave;//迭代 } int i_ave = ceil(d_ave); //printf("%d\n", (int)d_ave); printf("%d\n", i_ave); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 372KB, 提交时间: 2019-03-14
#include<stdio.h> int main() { int W,N; float Y,x; int i; while(scanf("%d%f%f%d",&W,&Y,&x,&N)!=EOF) { for(i=0;i<N;i++) { Y=(1-x)*(Y+1)+21*x; } printf("%.f\n",ceil(Y)); } return 0; }
C++ 解法, 执行用时: 2ms, 内存消耗: 376KB, 提交时间: 2020-08-21
#include <stdio.h> #include <math.h> float getage(int w,float y,double x,int newage) { return (1-x)*(y+1)+x*newage; } int main() { int w,n; float x,y; while(scanf("%d %f %f %d",&w,&y,&x,&n)!=EOF){ float answer; while(n>0) { answer=getage(w,y,x,21); y=answer; n--; } int a=ceil(answer); printf("%d\n",a); } return 0; }
C++ 解法, 执行用时: 2ms, 内存消耗: 376KB, 提交时间: 2020-08-16
#include <iostream> using namespace std; #include <cmath> int main(){ int W,N; double Y,x; while(cin>>W>>Y>>x>>N){ while(N){ Y = (Y+1)*(1-x) +21*x; N--; } cout << ceil(Y) <<endl; } return 0; }