酷代码 AI
菜单
服务商

乌拉乎吃大餐问题的 C++ 解决方案

以下是解决该问题的 C++ 代码: ```cpp #include <iostream> using namespace std; int main() { int n, m; // 输入食物数量 n 和乌拉乎的饥饿度 m cin >> n >> m; int satiety; for (int i = 1; i <= n; i++) { // 跳过乌拉乎不喜欢的食物(编号为 3 的倍数或 7 的倍数) if (i % 3 == 0 || i % 7 == 0) { cin >> satiety; continue; } cin >> satiety; // 减少乌拉乎的饥饿度 m -= satiety; if (m <= 0) { // 当饥饿度小于等于 0 时,输出当前食物编号 cout << i << endl; return 0; } } // 选完所有食物仍未吃饱,输出 -1 cout << -1 << endl; return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取食物的数量 `n` 和乌拉乎的饥饿度 `m`。 2. **遍历食物**:使用 `for` 循环从编号 1 到 `n` 遍历每盘食物。 3. **跳过不喜欢的食物**:如果食物编号是 3 的倍数或 7 的倍数,跳过该食物,直接读取其饱腹值但不进行饥饿度的减少操作。 4. **减少饥饿度**:对于乌拉乎喜欢的食物,读取其饱腹值并从当前饥饿度 `m` 中减去该值。 5. **判断是否吃饱**:每次减去饱腹值后,检查乌拉乎的饥饿度是否小于等于 0。如果是,则输出当前食物的编号并结束程序。 6. **未吃饱情况**:如果遍历完所有食物后,乌拉乎的饥饿度仍然大于 0,则输出 -1。 ######[AI问答 | 471点数解答 | 2026-03-22 16:50:34]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]