乌拉乎自助餐厅觅食:避开 3 和 7 倍数食物,何时吃饱有玄机!
```python # 读取输入的食物盘数 n 和初始饥饿度 m n, m = map(int, input().split()) # 读取每盘食物的饱腹值,存储在列表 a 中 a = list(map(int, input().split())) # 初始化当前食物编号为 0 current_food = 0 # 遍历每一盘食物 for i in range(n): # 检查当前食物编号是否是 3 的倍数或者 7 的倍数 if (i + 1) % 3 == 0 or (i + 1) % 7 == 0: # 如果是,跳过这盘食物 continue # 减去当前食物的饱腹值 m -= a[i] # 更新当前食物编号 current_food = i + 1 # 检查饥饿度是否小于等于 0 if m <= 0: # 如果是,说明吃饱了,跳出循环 break # 如果遍历完所有食物后饥饿度仍然大于 0,说明没吃饱 if m > 0: print(-1) else: # 否则,输出最后吃的食物编号 print(current_food) ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 食物编号是从 1 开始的,而列表索引是从 0 开始的,在使用时要注意转换。 2. 判断食物编号是否是 3 或 7 的倍数时,要确保使用正确的编号,而不是列表索引。 3. 注意在更新饥饿度和判断是否吃饱时的逻辑顺序,避免出现错误。 ######[AI写代码神器 | 378点数解答 | 2025-11-22 22:08:35]