描述

"赢了!我顺子!"也许在准备计算机考研的无聊时光里,打牌是最好的消遣方式了。只是,现在有5张牌在手里,它们构成顺子吗?
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。
我们可以把5张牌看成由5个数字组成的数组。大小王是特殊的数字,我们不妨把它们都当成0。

输入

输入有多组数据。 每组数据一行,5个非负整数(不大于13),各代表一张牌。

输出

对应每组数据,如果5张牌构成顺子则输出1,否则输出0。

样例输入1

0 1 3 4 5
1 10 11 12 13
0 0 7 7 0

样例输出1

1
0
0

#include <stdio.h>
int main()
{
	int num[6];

	while (scanf("%d%d%d%d%d",&num[1],&num[2],&num[3],&num[4],&num[5])!=EOF)
	{
		int i,count0=0;
		for (i=1;i<=5;i++)                     //把0都存起来
			if (!num[i])
				count0++;
		for (i=1;i<5;i++)
		{
			int j;
			for (j=i+1;j<=5;j++)
			{
				if (num[i]>num[j])
				{
					int tem=num[i];
					num[i]=num[j];
					num[j]=tem;
				}
			}
		}
		for (i=1;i<5;i++)
		{
			if (num[i]==num[i+1]&&num[i]!=0)            //如果两个数相同且不为0则构不成顺子
				break;
			if (num[i]&&num[i]+1!=num[i+1])             //如果两数相差大于1要0来补
					count0-=num[i+1]-num[i]-1;
			if (count0<0)                              //如果透支了零就构不成顺子
				break;
		}
		if (i==5)
			printf("1\n");
		else
			printf("0\n");
	}
	return 0;
}


点赞(3)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论