麻将清一色判和

2023-05-16

麻将清一色判和//C语言

  • 题目
  • 示例

题目

是这样的,雀儿最近迷上了打麻将。但是她不知道怎么才能清一色和牌。麻将的清一色和牌规则是:雀儿手里有13张同一类型的牌(万、筒或索中的一种,从1到9),现在要再获得一张牌(共计14张)使牌型满足mAAA+nABC+DD(AAA表示三张相同的牌,ABC表示三张连续升序的牌,DD表示两张相同的牌,m+n=4)。现在请你帮助雀儿判断雀儿手中的牌能不能在再获得一张牌后和牌。如果能和牌,请帮她找出她需要哪张牌。

示例

    #include <stdio.h>
    #include <stdlib.h>
    
    int Judge(int Pai[])
    {
        int Tip=0,jud,i;
        int rPai[10];
        for(i=1; i<10; i++)
            rPai[i]=Pai[i];
        for(i=1; i<10; i++)
        {
            Tip=rPai[i];
            switch(Tip)//对剩余牌数判断,决定算法
            {
            case 3:
                rPai[i]-=3;
            case 0:
                break;
            case 4:
                rPai[i]-=3;
            case 2:
            case 1:
                if(rPai[i+1]&&rPai[i+2]&&(i<8))
                    rPai[i]--,rPai[i+1]--,rPai[i+2]--,jud=1;
                else
                    jud=0;
                break;
            }
            if(rPai[i]&&jud)
                i--;
            else if(jud==0)
                return 0;
        }
        return 1;
    }
    
    int main()
    {
        int Pai[10],Q_Pai[10];
        int in,i,j,tip;
        printf("输入“1”开始程序:");
        scanf("%d",&tip);
        while(tip)
        {
            for(i=0; i<10; i++)
                Pai[i]=Q_Pai[i]=0;
            printf("\n输入雀儿手中的牌:");
            for(i=0; i<13; i++)
                scanf("%d",&in),Pai[in]++;//存1~9每种牌个数
            for(i=1; i<10; i++)
            {
                if(Pai[i]!=4)
                    Pai[i]++;
                else
                    continue;//判断该牌有没有被摸完,并摸牌测试
                for(j=1; j<10; j++)
                {
                    if(Pai[j]>=2)
                        Pai[j]-=2;
                    else
                        continue;//拿出对子,剩余肯定为三个刻子
                    if(Judge(Pai))//判断是不是三刻子
                        Q_Pai[i]=1;//Q_Pai做标记
                    Pai[j]+=2;//还原
                }//循环
                Pai[i]--;//还原
            }
            in=0,tip=1;
            for(i=1; i<10; i++)
            {
                in+=Q_Pai[i];
                if(in&&tip)
                    printf("\n雀儿可以和的牌有:"),tip=0;
                if(Q_Pai[i])
                    printf("%d ",i);
            }
            if(in==0)
                printf("\n雀儿不能和牌!");
            printf("\n");
            printf("________________________________________\n输入1继续判和\n输入0结束程序\n请输入:");
            scanf("%d",&tip);
        }
        return 0;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

麻将清一色判和 的相关文章

随机推荐

  • Qt:解析xml文件

    XML 什么事XML文件 XML xff0c 可扩展标记语言 xff08 Extensible Markup Language xff09 xff0c 是一种标记语言 一般用 于数据存储 配置文件存储 xff0c xff08 Qt的ui文件
  • 机器学习实战项目汇总

    ML assignments about Regression Classification CNN RNN Explainable AI Adversarial Attack Network Compression Seq2Seq GAN
  • C++类的运算符重载

    11 8 类的运算符重载 运算符重载是一种形式的C 43 43 多态 运算符重载将充值该的概念扩展到运算符上 xff0c 允许赋予C 43 43 运算符多种含义 C 43 43 允许将运算符重载扩展到用户定义类型 xff0c 例如 xff0
  • qgc通过mavros连接到Pixhawk飞控

    qgc通过mavros连接到Pixhawk飞控 mavros设置QGC设置 mavros确实是一个不错的工具 xff0c 在机载电脑上进行无人机开发的时候 xff0c 有时候想调飞控的参数看一下飞控的一些信息 xff0c 但是直接接飞控又不
  • 【视觉 SLAM】2D-2D:对极几何

    本文为视觉 SLAM 学习总结 xff0c 讲解 2D 2D 对极几何 欢迎交流 理论 现在相机得到了两张图片 xff08 通常为初始帧和第二帧 xff09 xff0c 已知两张图片中的像素坐标点和特征点的匹配关系 xff0c 已知相机内参
  • C调用python生成的so动态库

    目标 python代码实现的功能 xff0c 转成so动态链接库库 xff0c 然后被C语言调用 环境 ubuntu 18 04 思路 写一个pyx xff0c 用Cython生成so xff0c 写一个main c调用so 过程记录 写
  • 树莓派连接电源时,红灯常亮,绿灯连续闪两下后一直灭的问题

    可能原因 xff1a 1 解压途径不正确 IMG不能用RAR软件解压 xff0c 要用7ZIP xff08 官网有 xff1a 7ZIP xff09 用7ZIP解压 xff0c 然后重新刷系统 2 可能是SPI EEPROM的问题 xff0
  • 树莓派不能上网的可能原因以及解决方法

    不能上网的具体表现为树莓派的Web浏览器不能进入百度 xff0c 且运行sudo apt get update指令会报错 xff0c 提示 暂时不能解析域名 在百度上尝试了很多办法 xff0c 比如在 etc resolv conf文件中修
  • 树莓派4B学习笔记(3)—— 原理图与设置界面

    一 树莓派4B介绍 戳这里获取原理图 目前树莓派4只支持 xff0c 2019年7月10日发布的新系统raspbian buster xff0c 有精简版和全功能版 对于之前任何能与树莓派3兼容的系统 xff0c 树莓派4一概不支持 树莓派
  • 机器人正运动学(2)—— 自由度

    目录 1 自由度的定义2 自由度的计算2 1 刚体的自由度2 2 运动副2 3 自由度算例 3 总结 1 自由度的定义 自由度在很多领域中会出现 xff0c 对于机器人而言 xff0c 我们这里谈的也就是机构的自由度 任何一台机器人都可以认
  • 机器人正运动学(8)—— DH坐标系建立技巧

    目录 1 引言2 建立DH坐标系的技巧2 1 理清关节和连杆2 2 画 z 轴2 3 确定 x 轴2 3 1 x轴方向2 3 2 x轴起始点 xff08 坐标系原点 xff09 2 4 小结 3 总结 1 引言 关于DH参数上一篇文章介绍了
  • ROS 学习笔记(13)—— 常用可视化工具的使用

    常用可视化工具的使用 1 QT 工具箱1 1 日志输出工具 rqt console1 2 数据绘图工具 rqt plot1 3 图像渲染工具 rqt image view1 4 计算图可视化工具 rqt graph1 5 综合工具 rqt
  • 树莓派4B安装 ubuntu20.04 & VNC远程桌面 & 安装ROS noetic

    树莓派4B安装 ubuntu20 04 amp VNC远程桌面 amp 安装ROS noetic 1 安装ubuntu方式1 xff1a 下载Imager文件 方式2 xff1a 下载镜像文件 2 查询树莓派 IP 地址3 使用ssh远程登
  • ROS踩坑记录

    ROS踩坑记录 问题 xff1a ubuntu 没有 dev ttyUSB0问题 xff1a 运行 launch 文件或 ROS 节点时出现 exit code 9 错误提示问题 xff1a windows使用vscode远程连接 xff0
  • ROS中的分布式通讯(树莓派与虚拟机)

    ROS中的分布式通讯 xff08 树莓派与虚拟机 xff09 一 前言二 树莓派连接WIFI三 查找局域网下的其他设备 IP四 确定可以ping通五 配置文件修改六 配置主机 IP七 配置从机 IP八 测试九 可能会遇到的问题 一 前言 在
  • Laravel Passport-不支持授予类型("error": "unsupported_grant_type")

    如果你在Laravel里使用Passport授权验证的时候出现 xff1a span class token punctuation span span class token double quoted string string 34
  • NanoPi M4开发opencv图像识别aruco码全过程(超详细)(一:搭环境)

    NanoPi M4介绍 NanoPi M4是基于RK3399 SoC设计的一款接口尺寸与树莓派3兼容的嵌入式ARM计算机 它的尺寸只有85x56mm xff0c 接口丰富 布局紧凑 非常适合二次开发 并方便嵌入到最终产品中去 NanoPi
  • NanoPi M4开发opencv图像识别aruco码全过程(超详细)(二:测试)

    进入 usr local bin 这里是aruco提供的一些测试案例 xff0c 可执行文件 这里我们用这些例程来测试是否opencv及aruco是否安装完好并且可执行 1 相机标定 1 1先打印生成标定板 在https sourcefor
  • NanoPi M4开发opencv图像识别aruco码全过程(超详细)(二:测试补充)

    一 ArUco项目源码简析 声明 xff1a 以下内容均是在虚拟机Ubuntu系统下进行操作 xff0c 用开发板Nano Pi的同学亦可同样实现 xff0c 但这里为了方便截图以及界面复制 1 首先来看一下ArUco项目的源码结构 bin
  • 麻将清一色判和

    麻将清一色判和 C语言 题目示例 题目 是这样的 xff0c 雀儿最近迷上了打麻将 但是她不知道怎么才能清一色和牌 麻将的清一色和牌规则是 xff1a 雀儿手里有13张同一类型的牌 xff08 万 筒或索中的一种 xff0c 从1到9 xf