• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php实现求扑克牌顺子(*****)(AC)(分类:把问题分小,利于排错) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、总结

分类(那就可以把问题分小而逐步完成每个板块,这样是很简单的)

分类还有助于查错

 

二、php实现求扑克牌顺子

题目描述

LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。 现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何。为了方便起见,你可以认为大小王是0。

 

三、代码

 1 <?php
 2 //算法步骤:分类(那就可以把问题分小而逐步完成每个板块,这样是很简单的)
 3 function IsContinuous($numbers)
 4 {
 5     sort($numbers);
 6     $haveWang=false;
 7     $wangNum=0;
 8     foreach($numbers as $key=>$val){
 9         if($val==0){ $haveWang=true; $wangNum++;} 
10     }
11     //抽到的牌有大小王的时候
12     if($haveWang){
13         //有1个王
14         if($wangNum==1){
15             //求数之间的差值
16             $cha=0;
17             for($i=1;$i<4;$i++){$cha+=$numbers[$i+1]-$numbers[$i];}
18             if($cha==3||$cha==4) return true;
19             else return false;
20         }
21         //有2个王
22         if($wangNum==2){
23             $cha=0;
24             for($i=2;$i<4;$i++){$cha+=$numbers[$i+1]-$numbers[$i];}
25             if($cha==3||$cha==4||$cha==2) return true;
26             else return false;
27         }
28         //有3个王
29         if($wangNum==3){
30             $cha=0;
31             for($i=3;$i<4;$i++){$cha+=$numbers[$i+1]-$numbers[$i];}
32             if($cha==1||$cha==3||$cha==4||$cha==2) return true;
33             else return false;
34         }
35         //有4个王
36         if($wangNum==4){
37             return true;
38         }
39     }else{//没抽到大小王的时候
40         $maxPai=$numbers[4];
41         $minPai=$numbers[0];
42         //如果最大减最小大于4,返回false
43         if($maxPai-$minPai>4) return false;
44         //如果最大减最小小于4,说明有重复,返回false
45         if($maxPai-$minPai<4) return false;
46         //等于4的话,要保证每张不一样
47         $numbers=array_unique($numbers);
48         if(count($numbers)==5) return true;
49     }
50     
51     
52 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP闭包function()use()发布时间:2022-07-10
下一篇:
php5.2与5.3性能测试对比发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap