PHP实现判断扑克牌5张连续

// 思路
//先给数组排序、检查数组中是否有2个值相等的,如果有则直接不是;
//判断数组中 0 的个数 数组中两个值之间比较的差值相加 <= 0的个数,否则补数不够
$arr = array(1, 0, 0, 1, 0);
if(count($arr) < 5) {
echo ‘arr not five’;exit;
}
// 先进行排序
sort($arr);
$zeronum = 0;
//判断数组中是否有2个值相等的

for ($i=0; $i <count($arr) ; $i++)
{
// 最后一个不做比较,否则数组溢出
if($i>=4) {
continue;
}
if($arr[$i] == $arr[$i + 1] && $arr[$i] >0 ) {
echo ‘has equal value’;exit;
}

// 统计 0 的个数 – 这个是可以补数组中空缺的数组
if($arr[$i] == 0) {
$zeronum ++ ;
}
}
// 非0数字直接需要补的数值 有 几个 比如 0 0 1 3 4
// 需要补充的是 1 3 之间的 一个 2
$totaldfval = 0;

// 循环数组比较里面的差值
for ($j=$zeronum; $j <count($arr);$j++ ) {
// 比较 2个值 之间是否是连续的,如果是连续的 则 数据相减 等于0
if($j>=4) {
continue;
}
$diffval = $arr[$j + 1] - $arr[$j] - 1;
$totaldfval += $diffval;
}

if($totaldfval > $zeronum) {
echo ‘num not lx’;exit();
}
echo ‘num lx’;
exit;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值