一副牌中发五张扑克牌给你:让你判断数字的组成:
有以下几种情况:
1:四条:即四张一样数值的牌(牌均不论花色)
2:三条带 一对
3:三条带两张不相同数值的牌
4:两对
5:顺子 包括 10,J,Q,K,A
6:什么都不是
7:只有一对。
c
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
string str;
cin>>str;
int flag;
int num[5],m=0;
for(int i=0;i<str.size()&&m<5;i++)
{
if(str[i]>=‘2‘&&str[i]<=‘9‘)
num[m++]=str[i]-‘0‘;
else if(str[i]==‘1‘&&str[i+1]==‘0‘)
{
num[m++]=10;
i++;
}
else if(str[i]==‘J‘||str[i]==‘j‘)
num[m++]=11;
else if(str[i]==‘Q‘||str[i]==‘q‘)
num[m++]=12;
else if(str[i]==‘K‘||str[i]==‘k‘)
num[m++]=13;
else if(str[i]==‘A‘||str[i]==‘a‘)
num[m++]=14;
else
{
cout<<"输入错误"<<endl;
return 0;
}
}
qsort(num,5,sizeof(int),cmp);
if(num[0]==num[3]||num[1]==num[4])
flag=1;
else if((num[0]==num[2]&&num[3]==num[4])||(num[2]==num[4]&&num[0]==num[1]))
flag=2;
else if((num[0]==num[2]&&num[3]!=num[4])||(num[2]==num[4]&&num[0]!=num[1])||num[1]==num[3])
flag=3;
else if((num[0]==num[1]&&num[2]==num[3])||(num[0]==num[1]&&num[3]==num[4])||(num[1]==num[2]&&num[3]==num[4]))
flag=4;
else if(num[0]==num[1]||num[1]==num[2]||num[2]==num[3]||num[3]==num[4])
flag=7;
else if(num[4]-num[0]==4)
flag=5;
else
flag=6;
cout<<flag<<endl;
return 0;
}
java
import java.util.Arrays;
import java.util.Scanner;
public class pukeNum {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.nextLine();
int flag;
int []num= new int[5];
int m=0;
for(int i=0;i<str.length()&&m<5;i++)
{
if(str.charAt(i)>=‘2‘&&str.charAt(i)<=‘9‘)
num[m++]=str.charAt(i)-‘0‘;
else if(str.charAt(i)==‘1‘&&str.charAt(i+1)==‘0‘)
{
num[m++]=10;
i++;
}
else if(str.charAt(i)==‘J‘||str.charAt(i)==‘j‘)
num[m++]=11;
else if(str.charAt(i)==‘Q‘||str.charAt(i)==‘q‘)
num[m++]=12;
else if(str.charAt(i)==‘K‘||str.charAt(i)==‘k‘)
num[m++]=13;
else if(str.charAt(i)==‘A‘||str.charAt(i)==‘a‘)
num[m++]=14;
else
{
System.out.println("输入错误");
return;
}
}
Arrays.sort(num);
if(num[0]==num[3]||num[1]==num[4])
flag=1;
else if((num[0]==num[2]&&num[3]==num[4])||(num[2]==num[4]&&num[0]==num[1]))
flag=2;
else if((num[0]==num[2]&&num[3]!=num[4])||(num[2]==num[4]&&num[0]!=num[1])||num[1]==num[3])
flag=3;
else if((num[0]==num[1]&&num[2]==num[3])||(num[0]==num[1]&&num[3]==num[4])||(num[1]==num[2]&&num[3]==num[4]))
flag=4;
else if(num[0]==num[1]||num[1]==num[2]||num[2]==num[3]||num[3]==num[4])
flag=7;
else if(num[4]-num[0]==4)
flag=5;
else
flag=6;
System.out.println(flag);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/wtyvhreal/article/details/46660001