扑克牌的顺子的编程算法代码(C)

从扑克牌中随机抽取5张牌, 判断是不是一个顺子, 即这5张牌是不是连续的.

2~10为数字本身, A为1, J为11, Q为12, K为13, 而大小王可以看成任意数字.


排序, 判断字符串之间的间隔数, 如果小于等于大小王的数量, 则是连续, 否则不是.

[csharp]  view plain copy
  1. /*  
  2.  * main.cpp  
  3.  *  
  4.  *  Created on: 2014.7.12  
  5.  *      Author: spike  
  6.  */    
  7.    
  8. #include <stdio.h>    
  9. #include <stdlib.h>    
  10. #include <string.h>    
  11. #include <math.h>    
  12.     
  13. using namespace std;    
  14.     
  15. int compare(const void* num1, const void* num2) {    
  16.     return *(int*)num1-*(int*)num2;    
  17. }    
  18.     
  19. bool IsContinuous(int* numbers, int length) {    
  20.     if (numbers == NULL || length < 1)    
  21.         return false;    
  22.     qsort(numbers, length, sizeof(int), compare);    
  23.     int numberOfZero = 0;    
  24.     int numberOfGap = 0;    
  25.     for (int i=0; i<length&&numbers[i]==0; ++i)    
  26.         ++numberOfZero;    
  27.     int small = numberOfZero;    
  28.     int big = small+1;    
  29.     while(big < length) {    
  30.         if (numbers[small] == numbers[big])    
  31.             return false;    
  32.         numberOfGap += numbers[big] - numbers[small]-1;    
  33.         small = big;    
  34.         ++big;    
  35.     }    
  36.     return (numberOfGap>numberOfZero) ? false : true;    
  37. }    
  38.     
  39. int main(void)    
  40. {    
  41.     int numbers[] = {0, 3, 1, 4, 5};    
  42.     bool result = IsContinuous(numbers, 5);    
  43.     printf("result = %s\n", result ? "true" : "false");    
  44.     return 0;    
  45. }   

悄无声息地,在每时每刻,每个角落,伸展,蔓延。黑白分明易练眼,乱中有序好修心。我想做一个如莲的女子,以一朵菊的姿态,临水而坐,将满心的痴情,注入指尖,安静的奏一曲《眷眷柔情》。就如同宿命的强势,挟持着我的步伐,左右我们行动。是你,心甘情愿地加入了我的迷途,用你的质朴诚实,纯洁无瑕,相伴在茫茫的烟雨路。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值