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