小核桃的护盾攻击计算(C++代码简单版)
好的,我们一步一步来看这个问题。我们要小朋友也能看懂,所以慢一点解释。 ## 📥 输入格式 先读懂题目要我们读什么东西: - 第一行:5个数字,代表5个敌人的初始护盾值。 - 第二行:一个整数 n,表示攻击总次数。 - 第三行:n个1或2,表示每次攻击是哪种(1=粒子炮,2=集束粒子炮)。 ## 🧠 攻击规则 **粒子炮(1)**: - 每一个敌人的护盾都减5。 **集束粒子炮(2)**: - 选择一个敌人,并指定他和他旁边的人。 - 这三个人的护盾值都除以2(注意是整除,即丢弃小数部分)。 - 必须注意: - 如果攻击第1个敌人,他只有右边的邻居(敌人2),所以只影响敌人1和敌人2。 - 如果攻击第5个敌人,他只有左边的邻居(敌人4),所以只影响敌人4和敌人5。 - 其他人攻击则影响3个。 每次攻击后如果护盾能量变成负数,则立即置为0。 ## 📝 C++ 代码(写得像小朋友) ```cpp #include <iostream> using namespace std; int main() { // 5个敌人护盾值 int shield[5]; for (int i = 0; i < 5; i++) { cin >> shield[i]; } // 攻击次数 int n; cin >> n; // 每次攻击是1还是2 int attack; for (int i = 0; i < n; i++) { cin >> attack; if (attack == 1) { // 粒子炮:全部减5 for (int j = 0; j < 5; j++) { shield[j] = shield[j] - 5; if (shield[j] < 0) { shield[j] = 0; } } } else if (attack == 2) { // 集束粒子炮:指定敌人位置(1~5) int pos; cin >> pos; // 数组是从0开始,所以要减1 pos = pos - 1; // 先处理自己 shield[pos] = shield[pos] / 2; // 左边的人(如果有) if (pos > 0) { shield[pos - 1] = shield[pos - 1] / 2; } // 右边的人(如果有) if (pos < 4) { shield[pos + 1] = shield[pos + 1] / 2; } // 处理负数变0 for (int j = 0; j < 5; j++) { if (shield[j] < 0) { shield[j] = 0; } } } } // 输出最后结果 for (int i = 0; i < 5; i++) { cout << shield[i] << " "; } cout << endl; return 0; } ``` ## 🧪 运行例子 输入: ``` 100 90 80 70 60 3 1 2 3 2 1 ``` 解释: 1. 第一次攻击(1号粒子炮):全部减5 -> 95 85 75 65 55 2. 第二次攻击(2号集束粒子炮打位置3): - 位置3(75/2=37),左边位置2(85/2=42),右边位置4(65/2=32) - 变成 95 42 37 32 55 3. 第三次攻击(2号集束粒子炮打位置1): - 位置1(95/2=47),右边位置2(42/2=21) - 变成 47 21 37 32 55 输出: ``` 47 21 37 32 55 ``` ## 📌 注意 - 每次集束粒子炮攻击都要指定位置(输入中是2后面跟一个数字)。 - 记得每次检查是否负了,变0。 ######[AI问答 | 939点数解答 | 2026-06-05 19:24:38]
- 网络安全必知:CSRF 攻击揭秘与七大防御妙招! (百度文心 | 239点数解答 | 2023-11-09 18:35:43)259
- 网络安全工程师揭秘:DOS、DDoS、DRDoS攻击原理与防范策略(百度文心 | 327点数解答 | 2023-11-09 18:35:59)252
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)112
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)83
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)31
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)30
- 蓝桥杯省赛集训:不用 datetime 计算小蓝日记整数对应的日期(GPT | 516点数解答 | 2024-08-24 19:05:08)821
- 简单C语言编程:输入两整数算和差积商,10秒内搞定!(字节豆包 | 146点数解答 | 2024-10-17 15:51:21)391
- C 语言轻松搞定:四位数倒序输出,单个测试集 10 秒评测!(字节豆包 | 227点数解答 | 2024-10-17 21:54:27)361
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)458
- Python程序:验证20亿内偶数分解为最小素数对,证实哥德巴赫猜想!(阿里通义 | 667点数解答 | 2024-11-11 19:20:44)478
- 查询学生分数:C++实现及注意要点(阿里通义 | 376点数解答 | 2024-12-05 19:07:36)244