You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求编写输入储物柜编号返回对应楼层的函数的最优代码

解决储物柜对应楼层的函数实现

首先明确楼层与储物柜的规律:

  • 每3层为一个循环周期,每个周期包含的储物柜总数为 5+6+7=18 个
  • 每个周期内的楼层对应储物柜范围:
    • 周期内第1层:5个储物柜(位置1-5)
    • 周期内第2层:6个储物柜(位置6-11)
    • 周期内第3层:7个储物柜(位置12-18)

核心逻辑

  1. 计算储物柜编号在周期内的相对位置:用 locker_num % 18,若结果为0则取18(因为18是周期最后一个位置)
  2. 计算所在的周期数:(locker_num -1) // 18(从0开始计数)
  3. 根据相对位置判断周期内的楼层,再加上周期数对应的楼层偏移量得到总楼层

最优代码(Python)

def get_floor(locker_num):
    if not isinstance(locker_num, int) or locker_num <= 0:
        raise ValueError("储物柜编号必须是正整数")
    
    cycle_total = 18
    cycle_pos = locker_num % cycle_total
    cycle_pos = cycle_pos if cycle_pos != 0 else cycle_total
    
    cycle_num = (locker_num - 1) // cycle_total
    
    if cycle_pos <= 5:
        return cycle_num * 3 + 1
    elif cycle_pos <= 11:
        return cycle_num * 3 + 2
    else:
        return cycle_num * 3 + 3

测试验证

  • 输入19:(19-1)//18=1,19%18=1,1<=5 → 1*3+1=4,符合预期
  • 输入5:返回1
  • 输入11:返回2
  • 输入18:返回3
  • 输入23:23%18=5 → 返回4
  • 输入24:24%18=6 → 返回5

内容的提问来源于stack exchange,提问作者Chris anto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:47:13