https://blog.csdn.net/xy010902100449/article/details/50582743
bool IsAutoMorphicNum(unsigned int num)
{
if (num < 2)
{
return true;
}
unsigned long long count = 1;
unsigned int tmp_num = num;
while (tmp_num > 0)
{
tmp_num /= 10;
count *= 10;
}
unsigned long long lnum = num;
lnum *= lnum;
return (num == (lnum % count));
}
某公司有二类职员Employee和Manager,Manager亦属于Employee。每个Employee对象所具有的基本信息为:姓名、工号、性别、年龄、工作年限、部门信息、技术级别、人岗级别,Manager对象除具有上述基本信息外,还有管理级别信息。
该公司有如下规定:
技术级别是从1~10级,数字越大表示级别越高;管理级别级别也是1~5级,数字越大表示级别越低;人岗级别是1~10级,数字越大表示级别越高;满足以下条件的称之为人岗匹配:
对于Employee(非Manager),技术级别必须大于或等于人岗级别;
对于Manager,管理级别5级的人岗级别小于4级;管理级别4级的人岗级别大于或等于3级,小于6级;管理级别3级的人岗级别大于或等于5级,小于8级;管理级别2级的人岗级别大于或等于7级,小于10级;管理级别1级的人岗级别大于或等于9级;
该公司对退休年龄的规定如下:
对于Employee(非Manager),男性60岁必须退休,女性50岁必须退休;例如某男性员工,1962年01月01日出生,2022年01月01日必须退休;
对于Manager,男性60岁必须退休,女性55岁必须退休;
对于工作年限大于30年者,可以申请提前退休;
工号唯一。添加职员时,如果工号相同,需要以后面的数据为准;
要求:
完善并实现类BaseInfo、Department、Level、Employee和Manager;
按部门统计如下信息
分别输出公司中二类职员的人数(注意:Manager亦属于Employee)。
统计人岗不匹配人数
统计从现在到N年内所有必须退休的人数和所有可以提前退休人数
某公司有二类职员Employee和Manager,Manager亦属于Employee。每个Employee对象所具有的基本信息为:姓名、工号、性别、年龄、工作年限、部门信息、技术级别、人岗级别,Manager对象除具有上述基本信息外,还有管理级别信息。 该公司有如下规定:
要求:
|