买二送一难题破解:最少花费买全 n 本书及代码实现要点
```cpp #include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int n; // 读取书的数量 cin >> n; vector<int> prices(n); for (int i = 0; i < n; i++) { // 读取每本书的价格 cin >> prices[i]; } // 对书的价格进行降序排序 sort(prices.begin(), prices.end(), greater<int>()); int totalCost = 0; for (int i = 0; i < n; i++) { // 如果索引不是3的倍数,说明这本书需要付费 if ((i + 1) % 3 != 0) { totalCost += prices[i]; } } // 输出买下全部书的最少花费 cout << totalCost << endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 排序时要注意是降序排序,这样才能保证每次买二送一得到最大的优惠。 2. 计算索引时要注意索引是从0开始的,判断是否为3的倍数时要进行合适的处理。 3. 输入输出的格式要严格按照题目要求,避免因为格式问题导致结果错误。 ######[AI写代码神器 | 315点数解答 | 2025-08-14 15:09:51]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)344
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)184
- 买二送一难题破解:最少花费买全 n 本书及代码实现要点 (字节豆包 | 315点数解答 | 2025-08-14 15:09:51)212
- 奶牛Bessie工作调度:如何最大化完成工作数量?(DeepSeek | 494点数解答 | 2026-01-18 12:55:29)33
- 奶牛Bessie的工作调度:基于截止时间的贪心反悔算法实现(阿里通义 | 3592点数解答 | 2026-03-05 12:23:20)16
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)312
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)462
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)355
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)253
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)243
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)430
- JS实现移动端网页快捷键创建方式及注意事项(阿里通义 | 284点数解答 | 2024-06-05 19:02:59)264