C++ 实现:Alice 游戏中计算筐外球数的巧妙解法
要解决这个问题,我们可以使用一个数组来模拟四个筐子,并且跟踪每个筐子中的球的数量。每次操作时,我们将一个球放入0号筐子,然后根据给定的移动步数将球向前移动。如果球移动出界(即超出3号筐子),则将其计数为筐外的球。 以下是实现这个逻辑的C++代码: ```cpp #include <iostream> #include <vector> int main() { int n; std::cin >> n; // 初始化筐子,初始为空 std::vector<int> baskets(4, 0); // 读取移动步数 std::vector<int> moves(n); for (int i = 0; i < n; ++i) { std::cin >> moves[i]; } int outside = 0; // 记录筐外的球数 for (int i = 0; i < n; ++i) { // 将一个球放入0号筐子 baskets[0]++; // 移动球 for (int j = 0; j < 4; ++j) { if (baskets[j] > 0) { int new_position = (j + moves[i]) % 4; if (new_position == 0) { // 如果新位置是0号筐子,直接移动 baskets[j]--; baskets[new_position]++; } else if (new_position > 0 && new_position <= 3) { // 如果新位置在1-3号筐子之间,移动 baskets[j]--; baskets[new_position]++; } else { // 如果新位置超出3号筐子,移到筐外 baskets[j]--; outside++; } } } } std::cout << outside << std::endl; return 0; } ``` 代码解释 1. 输入部分: - 首先读取操作次数 `n`。 - 然后读取 `n` 个移动步数 `a_i`。 2. 初始化: - 使用一个大小为4的向量 `baskets` 来表示四个筐子,初始时所有筐子都为空。 - 使用一个变量 `outside` 来记录筐外的球数。 3. 操作部分: - 对于每次操作,首先将一个球放入0号筐子。 - 然后遍历每个筐子,如果有球需要移动,计算新的位置 `new_position`。 - 根据 `new_position` 的值决定球的新位置: - 如果 `new_position` 是0号筐子,直接移动。 - 如果 `new_position` 在1-3号筐子之间,移动到相应的位置。 - 如果 `new_position` 超出3号筐子,将球计为筐外的球。 4. 输出部分: - 最后输出筐外的球数 `outside`。 这个程序能够正确处理给定的操作次数和移动步数,并计算最终筐外的球数。 ######[AI写代码神器 | 676点数解答 | 2024-11-13 08:34:26]
- JavaScript:解构赋值与模板字符串实现从对象提取信息并创建语句(阿里通义 | 138点数解答 | 2024-10-29 09:40:13)219
- 巧用解构赋值与模板字符串,从对象提取信息输出个性语句!(字节豆包 | 64点数解答 | 2024-10-29 21:04:59)260
- 超燃年会来袭!诗舞歌戏轮番上阵,共赴欢乐盛宴! (字节豆包 | 206点数解答 | 2025-01-08 10:59:43)322
- C++ 代码实现:多次询问姓名并决定是否重复程序(字节豆包 | 267点数解答 | 2024-10-22 08:36:28)228
- HTML 实战:解构对象提取信息并生成个性语句(讯飞星火 | 159点数解答 | 2024-10-26 23:27:20)203
- C++ 实现:Alice 游戏中计算筐外球数的巧妙解法(阿里通义 | 676点数解答 | 2024-11-13 08:34:26)239
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)318
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)288
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)43
- JavaScript:通过解构赋值与模板字符串从对象提取信息并生成句子 (字节豆包 | 117点数解答 | 2024-10-27 20:00:30)347
- Python 代码实战:创建数据框、处理缺失值填空全解析(阿里通义 | 563点数解答 | 2025-04-14 18:30:52)175
- 探秘各类游戏:多样玩法带来不同乐趣!(字节豆包 | 77点数解答 | 2025-05-04 01:10:38)159