java 判断5张牌的组成

会有一股神秘感。 提交于 2020-02-25 19:55:51

题目:

一副牌中发五张扑克牌给你,判断是四条,三带二、三带一加一、两对、一对、顺子、还是什么都不是。

 

控制台输入:

1,1,1,1,2

示例输出:

四条

 

Java方法的代码:

    static String func(String str){     
        String[] parts = str.split(",");
        int[] num = new int[5];
        for(int i=0;i<5;i++){
            num[i] = Integer.parseInt(parts[i]);
        }
        for(int i=4; i>0 ;i--)
            for(int j=0; j<i; j++){
                if(num[j] > num[j+1]){
                    int temp = num[j];
                    num[j] = num[j+1];
                    num[j+1] = temp;
                }
            }           
        int count = 0;
        for(int i=0; i<4; i++){
            if(num[i] == num[i+1])
                count++;
        }
        // 11112  12222
        // 11122  11222
        if(count==3){
            if(num[1]==num[3])
                return "四条";
            else
                return "三带一对";
        }
        // 11123 12223 12333
        // 11223 12233 11233
        if(count==2){
            if( (num[0]==num[2]) || (num[1]==num[3]) || (num[2]==num[4]) )
                return "三带一加一";
            else
                return "两对";
        }
        // 11234
        if(count==1)
            return "一对";
        if(count==0 & (num[1]==num[0]+1) & (num[2]==num[1]+1) & (num[3]==num[2]+1) & (num[4]==num[3]+1))
            return "顺子";
        return "杂牌";
    }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!