酷代码 AI
菜单

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

```python # 获取输入的食物盘数n和初始饥饿度m n, m = map(int, input().split()) # 获取每盘食物的饱腹值,存储在列表中 sat_values = 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 -= sat_values[i] # 更新当前食物编号 current_food = i + 1 # 判断是否吃饱 if m <= 0: break # 如果遍历完所有食物后仍然没有吃饱,输出-1 if m > 0: print(-1) else: print(current_food) ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 注意食物编号是从1开始的,而列表索引是从0开始的,在判断倍数和输出结果时要正确转换。 2. 在判断食物编号是否为3或7的倍数时,要确保使用正确的逻辑运算符和取余操作。 3. 对于边界情况,如选完所有食物后仍然没有吃饱,要正确输出 -1。 [2025-11-22 22:07:39 | AI写代码神器 | 330点数解答]

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