码迷,mamicode.com
首页 > 其他好文 > 详细

[抽象建模问题]扑克牌的顺子判断

时间:2015-09-16 09:45:50      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

根据抽到的5张扑克牌,判断是不是顺子。注意:大小王可以随便的代替任何的牌。

bool IsContinuous( vector<int> numbers ) 
{    
	int i = 0;
	int length = numbers.size();
	if(length <= 0)
	{
		return false;
	}
	int *arr = &numbers[0];
	qsort(arr, length, sizeof(int), compare);
	
	//统计0的个数
	int numberOfZero = 0;
	for(i = 0; i < length && numbers[i] == 0; ++i)
	{
		++numberOfZero;
	}
	//统计空缺的个数
	int numberOfGap = 0;
	int start = numberOfZero;
	int end = start + 1;
	while(end < length)
	{
		if(numbers[end] == numbers[start])
			return false;
		else
		{
			numberOfGap += numbers[end] - numbers[start] - 1;
			start++;
			end++;
		}
	}//while
	
	return numberOfGap > numberOfZero ? false : true;
}

static int compare(const void *arg1, const void *arg2)
{
	return *(int*)arg1 - *(int*)arg2;
}

注意一下注意点:

1. 大小王先用0表示,这样方便处理。

2. qsort的用法:

功 能: 使用快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));
参数: 
1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序

int compare(const void *elem1, const void *elem2 );

  技术分享

 

[抽象建模问题]扑克牌的顺子判断

标签:

原文地址:http://www.cnblogs.com/stemon/p/4812238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!