描述
"赢了!我顺子!"也许在准备计算机考研的无聊时光里,打牌是最好的消遣方式了。只是,现在有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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复