Newguy


私信TA

用户名:772007765

访问量:88819

签 名:

已秃人士

等  级
排  名 29
经  验 15370
参赛次数 3
文章发表 92
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

TA的其他文章

进制转换2
浏览:909
单词混合
浏览:1085
神奇的工号
浏览:1015

描述

"赢了!我顺子!"也许在准备计算机考研的无聊时光里,打牌是最好的消遣方式了。只是,现在有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;
}


 

0.0分

0 人评分

  评论区

  • «
  • »