C语言/数据结构:实现德州扑克“葫芦”牌型查找(点数限制+最大a优先)
📅 2026/7/16 15:46:04
👁️ 次浏览
问题描述在德州扑克游戏中葫芦Full House是一种由五张牌组成的牌型包含三张相同点数的牌称为a和另外两张相同点数的牌称为b。如果多个玩家都有葫芦则先比较a的大小若a相同再比较b的大小。本题中葫芦需要满足额外条件五张牌的点数之和不能超过给定的最大值max。牌的点数规则如下A 的点数为 14注意不是1K 的点数为 13Q 的点数为 12J 的点数为 11数字牌的点数与其数字相同如10的点数为102的点数为2给定一组牌用点数表示请找出所有可能组成的葫芦中最大的那个即a尽可能大在a相同的情况下b尽可能大。如果存在多个葫芦组合满足条件选择a最大的如果a相同选择b最大的。如果找不到符合条件的葫芦输出 0, 0。注意葫芦必须由五张牌组成且三张a和两张b必须来自给定的牌每张牌只能使用一次。输入格式输入包含三个部分整数n表示牌的数量整数max表示葫芦的五张牌点数之和的最大允许值数组array包含n个整数表示每张牌的点数在代码中你将通过函数参数或标准输入接收到这些值具体取决于编程语言。输出格式输出两个整数分别表示葫芦的三张相同牌的点数a和两张相同牌的点数b用逗号分隔。如果找不到输出 0, 0。程序代码#include stdio.h#include stdlib.hchar* findFullHouse(int n, int max_val, int* array) {// 统计每一点数出现的次数int count[15] {0}; // 点数范围 2~14for (int i 0; i n; i) {if (array[i] 2 array[i] 14) {count[array[i]];}}int best_a 0, best_b 0;// 从大到小遍历 a三张相同牌的点数for (int a 14; a 2; a--) {if (count[a] 3) continue; // 至少需要3张// 从大到小遍历 b两张相同牌的点数for (int b 14; b 2; b--) {if (b a) continue; // a 和 b 必须不同if (count[b] 2) continue; // 至少需要2张// 检查点数之和是否超过最大值int sum a * 3 b * 2;if (sum max_val) {// 由于 a 和 b 都是从大到小遍历第一个满足的就是最大的char* result (char*)malloc(10 * sizeof(char));sprintf(result, %d, %d, a, b);return result;}}}// 没有找到符合条件的葫芦char* result (char*)malloc(10 * sizeof(char));sprintf(result, 0, 0);return result;}int main() {int array[] {6, 6, 6, 8, 8, 8, 5, 5, 1};printf(%s\n, findFullHouse(9, 34, array));return 0;}#include stdio.h #include stdlib.h char* findFullHouse(int n, int max_val, int* array) { // 统计每一点数出现的次数 int count[15] {0}; // 点数范围 2~14 for (int i 0; i n; i) { if (array[i] 2 array[i] 14) { count[array[i]]; } } int best_a 0, best_b 0; // 从大到小遍历 a三张相同牌的点数 for (int a 14; a 2; a--) { if (count[a] 3) continue; // 至少需要3张 // 从大到小遍历 b两张相同牌的点数 for (int b 14; b 2; b--) { if (b a) continue; // a 和 b 必须不同 if (count[b] 2) continue; // 至少需要2张 // 检查点数之和是否超过最大值 int sum a * 3 b * 2; if (sum max_val) { // 由于 a 和 b 都是从大到小遍历第一个满足的就是最大的 char* result (char*)malloc(10 * sizeof(char)); sprintf(result, %d, %d, a, b); return result; } } } // 没有找到符合条件的葫芦 char* result (char*)malloc(10 * sizeof(char)); sprintf(result, 0, 0); return result; } int main() { int array[] {6, 6, 6, 8, 8, 8, 5, 5, 1}; printf(%s\n, findFullHouse(9, 34, array)); return 0; }运行结果分析说明为什么结果不是86 因为五张牌点数之和大于最大允许值34。
一、引言:楼盘电子沙盘市场进入“内容驱动”新阶段2026年,楼盘电子沙盘已从“物理模型简单灯光”的展示工具演进为“三维实时渲染数据联动多端分发”的数字化营销核心。行业数据显示,内容制作费用在电子沙盘项目总预算中的占比首次超过硬件采…
📅 2026/7/16 15:46:04
那天晚上,我正和队友在炙热沙城2的B点死守,耳机里传来急促的脚步声。就在我切出燃烧瓶准备封路的瞬间,屏幕右下角那个熟悉的终端机界面一闪而过——队友那把崭新出厂、带着动态效果的“后翼弃兵”皮肤,在昏暗的灯光下格外醒目。那…
📅 2026/7/16 15:46:04
1. 项目概述:为什么是OpenGL与C? 如果你对屏幕上那些炫酷的游戏特效、流畅的动画或者逼真的三维模型是如何“画”出来的感到好奇,那么你找对地方了。计算机图形学,简单说,就是教会计算机如何生成和操作视觉内容的一门学…
📅 2026/7/16 15:45:03
最近好多朋友在后台私信我,说搞那个bbox参数 geo的时候头都大了。真的,我也理解那种感觉。明明代码写得挺对,结果跑出来就是报错。或者位置偏移得离谱,让人怀疑人生。其实吧,这事儿没你想的那么复杂。咱们今天不整那些虚头巴脑的理论。我就说说我踩过的坑,希望能帮到你。…
📅 2026/7/16 16:32:01
1. 这不是工具升级,是编程范式的迁移:从“写命令”到“调技能”的认知断层 你有没有过这种体验:敲下 cursor rule ,终端返回 command not found ;输入 claude ,系统提示“无法将‘claude’识别为 cmd…
📅 2026/7/16 16:31:43
C作为一门诞生近40年的编程语言,至今仍在游戏开发、系统编程、高频交易等性能敏感领域占据统治地位。但很多初学者在接触C时都会遇到一个困惑:为什么这门语言看起来如此复杂?指针、内存管理、模板、多继承……这些概念真的有必要存在吗&#…
📅 2026/7/16 16:31:43
1. 密码学的历史演进:从保密书写到数字安全基石 密码学最早可以追溯到古希腊时期,当时斯巴达人使用一种称为"密码棒"的圆柱体工具,通过缠绕纸条的方式对字母进行位移加密。这种古典密码学主要关注信息的保密书写和传递,…
📅 2026/7/16 16:31:43
1. 引言:工商业储能EMS的重要性
随着全球能源转型加速和电力市场化改革深入,工商业储能系统正成为企业实现能源成本优化、提升供电可靠性和参与电力市场的重要工具。而储能能量管理系统(Energy Management System for Energy Storage, EMS&am…
📅 2026/7/16 16:31:43
那天晚上,我正为一个代码生成任务调试模型。输入一段需求描述,等待模型逐字吐出代码,看着光标闪烁,时间一分一秒过去——这种体验太熟悉了。大语言模型能力强,但自回归解码的串行特性让它像一位深思熟虑但语速缓慢的专…
📅 2026/7/16 16:31:43
1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…
📅 2026/7/16 0:00:02
前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…
📅 2026/7/16 0:00:02
1. 项目概述与核心价值 在高速数字系统、通信设备乃至精密测量仪器中,一个稳定、纯净且可精确调控的时钟信号,往往是整个系统稳定运行的“心跳”。无论是确保数据在光纤中无误传输,还是让ADC/DAC芯片精准采样,亦或是让多块FPGA板卡…
📅 2026/7/16 0:00:02
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/15 22:51:06
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/15 19:03:10
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/15 22:46:06
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/15 22:51:03