分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

7.员工转正问题的实现-PHP

发布时间:2023-09-06 01:12责任编辑:胡小海关键词:PHP

  先描述问题:公司创立只有一位员工,每名员工经3月后转正,成为正式员工后可每月推荐一名新员工,新员工经三月后,转正又可推荐新员工;假设公司第一位员工也需要试用期,并且所有员工均不离职,请算出第n月员工数量。

  分析:经过归纳分析:得出以下数据1,1,1,2,3,4,6,9,13,,,,,

  实现代码如下:

<?php ???/* ???*转正问题 ???*1,1,1,2,3,4,6,9,13,,,,, ???*/ ???function rabit($month){
     //前三个月员工数为1人 ???????if($month<=3){ ???????????$nums = 1; ???????????return $nums; ???????}else{ ???????????$f1 = 1; ???????????$f2 = 1; ???????????$f3 = 1;       //判断月数在第几次循环中(向下取结果值),当月数是3的倍数时,为第倍数减一次循环 ???????????if($month%3 == 0){ ???????????????$m = $month/3 -1; ???????????}else{ ???????????????$m = floor($month/3); ???????????}
       //循环次数 ???????????for($i=1;$i<=$m;$i++){
         //第一次循环的三个值 ???????????????$f ?= $f1 + $f3; ???????????????$f5 = $f2 + $f; ???????????????$f6 = $f3 + $f5;
         ?//当循环数等于条件值时,跳出循环 ???????????????if($i == $m){
            //当月数为3的整数倍时是最大值 ???????????????????if($month%3 == 0){ ???????????????????????return $f6;
            //当月数取余3为1时是最小值 ???????????????????}else if($month%3 == 1){ ???????????????????????return $f;
            //当月数取余3为2时是中间值 ???????????????????}else if($month%3 == 2){ ???????????????????????return $f5; ???????????????????}
          //循环次数小于条件值时,进行循环赋值,层层推进 ???????????????}else{ ???????????????????$f1 = $f; ???????????????????$f2 = $f5; ???????????????????$f3 = $f6; ???????????????} ???????????} ???????} ???}
  //测试 ???$month1 = 1; ???$result1 = rabit($month1); ???echo $result1."<br>"; ???$month2 = 12; ???$result2 = rabit($month2); ???echo $result2;?>

7.员工转正问题的实现-PHP

原文地址:http://www.cnblogs.com/52-hz/p/7550996.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved