公司分配福利物品自动计算数量

行政办公室,时常会收到一些福利性的物品,如:好几箱的水果、花生、台历等等。这时候,办公室人员通常要负责将这些福利按一定的比例分发到各个部门和领导手中。这其实也是件蛮费脑子的事情。这其中是有潜规则的——物品数量的分配比例是:

1,老板>领导>员工;

2,同级人员分配的数量相同;

3,至少每人一份;

4,如果不够每人一份,就不分,转作它用(如放在接待物品中)。

虽然这体现出不公平,但社会现实就是这样的。

我们姑且不去讨论这到底公不公平,我们只从纯技术的角度来分析解决这个问题。

如下Python代码,用以解决如上物品分配问题。其分配原则是:

1,如果物品数量足够,则按如下比例分配:

老板:领导:员工=20%:18%:62%

2,同级人员分配的数量相同;

3,分配的底线是:至少每人一份;

4,如果不够每人一份,就不。

您也可以自行修改代码中的比例,以符合您的需求。

如下是代码:

def allocate_items(item_count, boss_count, leader_count, employee_count):
    total_people = boss_count + leader_count + employee_count

    # 如果物品数小于总人数或者某一类人数为0,则不够分配
    if item_count < total_people or boss_count == 0 or leader_count == 0 or employee_count == 0:
        print("不够分配")
        return

    # 如果物品数量等于总人数,确保每人分配至少1个物品
    if item_count == total_people:
        boss_per_person = 1
        leader_per_person = 1
        employee_per_person = 1
    else:
        # 方案1:老板:领导:员工=20%:18%:62%
        boss_share = max(1, round(item_count * 0.2))
        leader_share = max(1, round(item_count * 0.18))
        employee_share = max(1, item_count - boss_share - leader_share)

        # 显示每位老板、领导、员工分配的数量
        boss_per_person = max(1, boss_share // boss_count)
        leader_per_person = max(1, leader_share // leader_count)
        employee_per_person = max(1, employee_share // employee_count)

    # 计算剩余物品数,确保不为负数
    remaining_items = max(0, item_count - (boss_per_person * boss_count + leader_per_person * leader_count + employee_per_person * employee_count))
    print(f"每位老板分配: {boss_per_person} 个,每位领导分配: {leader_per_person} 个,每位员工分配: {employee_per_person} 个")
    print(f"剩余物品数: {remaining_items} 个")

# 用户输入
item_count = int(input("请输入物品数量: "))
boss_count = int(input("请输入老板的数量: "))
leader_count = int(input("请输入领导的数量: "))
employee_count = int(input("请输入员工的数量: "))

# 调用函数
allocate_items(item_count, boss_count, leader_count, employee_count)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

将出东方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值