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

求放置第K个玩具的盒子索引的Python代码实现

解决思路与Python代码

我们可以通过数学规律直接计算结果,避免逐个模拟(尤其是当K值很大时,这种方法效率更高):

规律分析

玩具的放置顺序存在固定周期,周期长度为2*(N-1),每个周期的序列是:1,2,...,N,N-1,...,2。

  • 当N=1时,所有玩具只能放入盒子1;
  • 对于N>1的情况:
    1. 计算第K个玩具在周期内的相对位置pos = K % cycle,若pos=0说明刚好处于周期末尾,对应盒子编号为2;
    2. 若pos <= N,直接返回pos;
    3. 若pos > N,返回2*N - pos。

Python代码实现

def find_box(K, N):
    if N == 1:
        return 1
    cycle = 2 * (N - 1)
    pos = K % cycle
    if pos == 0:
        return 2
    elif pos <= N:
        return pos
    else:
        return 2 * N - pos

# 测试示例
print(find_box(5, 3))  # 输出1,对应第5个玩具在盒子1
print(find_box(4, 3))  # 输出2,对应第4个玩具在盒子2
print(find_box(7, 4))  # 输出1,对应第7个玩具在盒子1
print(find_box(5, 4))  # 输出3,对应第5个玩具在盒子3

代码说明

  • 先处理特殊场景N=1,直接返回结果;
  • 通过取模运算快速定位K在周期内的相对位置;
  • 根据相对位置所在的区间,直接计算出对应的盒子编号。

内容的提问来源于stack exchange,提问作者BANTY SARCASTER

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:25:28