描述
"赢了!我顺子!"也许在准备计算机考研的无聊时光里,打牌是最好的消遣方式了。只是,现在有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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复