C++实现:判断斗地主纸牌能否连成顺子,含代码及注意要点!
以下是用 C++ 实现的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> bool isStraight(std::vector<int>& nums) { // 对输入的数字进行排序 std::sort(nums.begin(), nums.end()); int zeroCount = 0; // 统计 0 的个数 for (int num : nums) { if (num == 0) { zeroCount++; } } // 检查相邻数字的差值 for (int i = zeroCount; i < nums.size() - 1; i++) { if (nums[i + 1] == nums[i]) { return false; } if (nums[i + 1] - nums[i] > 1) { // 差值大于 1 时,用 0 来填补 if (nums[i + 1] - nums[i] - 1 > zeroCount) { return false; } zeroCount -= nums[i + 1] - nums[i] - 1; } } return true; } int main() { int n; std::cin >> n; std::vector<int> nums(n); for (int i = 0; i < n; i++) { std::cin >> nums[i]; } if (n == 1) { std::cout << nums[0] << std::endl; } else { if (isStraight(nums)) { std::cout << "yes" << std::endl; } else { std::cout << "no" << std::endl; } } return 0; } ``` 1. 输入数据时,要确保输入的是有效的整数。 2. 处理边界情况,如输入的数字数量为 0 或负数。 3. 考虑代码的效率和可读性,对于大规模数据输入的处理能力。 ######[AI写代码神器 | 466点数解答 | 2024-12-22 19:10:37]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)378
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)214
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)432
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)341
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)348
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)496
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)386
- C++实现超完整斗地主:含金币系统、牌型判断与智能电脑对战!(字节豆包 | 2647点数解答 | 2026-01-01 08:34:03)37
- C++实现超详细斗地主:含金币系统、叫地主加倍及多样牌型判断(字节豆包 | 2818点数解答 | 2026-01-01 08:37:56)37
- C++实现超完整斗地主:含金币系统、全环节玩法与牌型判断!(字节豆包 | 3207点数解答 | 2026-01-01 08:39:03)35
- C++实现超完整斗地主:含金币系统、叫抢地主及多样牌型判断(字节豆包 | 1917点数解答 | 2026-01-01 08:40:20)29
- C++实现超完整斗地主:含金币系统与丰富玩法,附完整代码!(字节豆包 | 2963点数解答 | 2026-01-01 08:44:05)35