酷代码 AI
菜单

乌拉乎太饿了,于是他来到了一家自助餐厅准备吃大餐,共有 n 盘食物,编号依次为 1~ n n,且每盘食物都有各自不同的饱腹值 a i 乌拉乎目前饥饿度为 m,如果某一盘食物的饱腹值为 5,那么吃掉这盘食物之后,乌拉乎的饥饿度就会减少 5点。当乌拉乎的饥饿度首次小于等于 0,那么乌拉乎就吃饱不会再吃了。 乌拉乎想要按顺序选择并吃掉一些食物,因为并不是所有的食物他都喜欢,例如编号为 3 的倍数,以及编号为 7 的倍数的食物,乌拉乎都不喜欢。 请你编写程序,输出乌拉乎吃完编号为多少的食物后就吃饱了。如果选完了 n 盘食物,乌拉乎依然没有吃饱,那么输出 −1。

```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. 注意在更新饥饿度和判断是否吃饱时的逻辑顺序,避免出现错误。 [2025-11-22 22:08:35 | AI写代码神器 | 378点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多