酷代码 AI
菜单

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

```cpp #include <iostream> using namespace std; int main() { int n, m; // 输入食物的盘数 n 和乌拉乎的初始饥饿度 m cin >> n >> m; int result = -1; for (int i = 1; i <= n; ++i) { // 检查当前食物编号是否是 3 的倍数或者 7 的倍数 if (i % 3 == 0 || i % 7 == 0) { continue; // 如果是,跳过这盘食物 } int satiety; cin >> satiety; // 输入当前食物的饱腹值 m -= satiety; // 减去当前食物的饱腹值 if (m <= 0) { result = i; // 如果饥饿度小于等于 0,记录当前食物编号 break; // 停止循环 } } cout << result << endl; // 输出结果 return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 要注意循环的边界条件,确保不会越界访问食物数组。 2. 在判断食物编号是否为 3 或 7 的倍数时,逻辑要准确,避免误判。 3. 输入和输出的格式要严格按照题目要求,防止因格式问题导致结果错误。 [2025-11-22 22:09:07 | AI写代码神器 | 322点数解答]

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