57、PHP 实现 从扑克牌中随机抽取5张牌,判断是不是一个顺子

题目: PHP 实现 从扑克牌中随机抽取5张牌,判断是不是一个顺子

描述:

即这5张牌是不是连续的2-10位数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。

解题思路:

  我们需要把扑克牌的背景抽象成计算机语言。不难想象,我们可以把5张牌看成由5个数字组成的数组。

  大小王是特殊的数字,我们不妨把它们都当成0,这样和其他扑克牌代表的数字就不重复了。

  接下来我们来分析怎样判断5个数字是不是连续的。最直观的是,我们把数组排序。

  但值得注意的是,由于0可以当成任意数字,我们可以用0去补满数组中的空缺。

  也就是排序之后的数组不是连续的,即相邻的两个数字相隔若干个数字,

  但如果我们有足够的0可以补满这两个数字的空缺,这个数组实际上还是连续的。

php 复制代码
 function factorial($n)
    {
        $n = intval($n);
        if ($n < 0) {
            return 0;
        }
        $sum = 0;
        for ($i = 5; $i <= $n; $i = $i + 5) {
            $j = $i;
            //求解5的个数 比如15 里面有3个5
            while ($j % 5 == 0) {
                $sum++;
                $j = $j / 5;
            }
        }
        return $sum;
    }
相关推荐
qq_401700411 分钟前
Qt窗体大小控制从resize到自适应
开发语言·qt
fengkai454510 分钟前
七、华为云网络综合实验 & 运维类及其他服务总结
服务器·开发语言·php
PHP实战开发录12 分钟前
PHP日志写满磁盘后接口为什么异常
开发语言·系统架构·php·开发
重生之小比特17 分钟前
【Java SE】程序逻辑控制
java·开发语言·python
小灰灰搞电子22 分钟前
Python 函数参数分隔符 *:Keyword-Only Arguments 原理与实践
开发语言·python
染的人28 分钟前
Java 10x15cm面单PDF转换A4格式PDF
java·开发语言·pdf
光电笑映35 分钟前
Linux 线程同步与互斥:锁的本质、条件变量与信号量的底层原理
linux·运维·服务器·开发语言·c++
Json____44 分钟前
从零构建在线拍卖系统:Java 全栈开发实践
java·开发语言·管理系统·it学习·wwwoop.com
2601_966949651 小时前
批量 K 线不只是提速:因子研究中的数据质量、复权与回测偏差
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
matlab代码1 小时前
基于matlab水果识别系统(西红柿、香蕉、梨、青椒)【源码64期】
开发语言·matlab