6-4 计算扑克牌24点的组合数 (10 分)JAVA怎么做?

6-4 计算扑克牌24点的组合数 (10 分)
一副牌中抽去大小王剩下52张,任意抽取4张牌(称牌组),用加、减、乘、除(可加括号)把牌面上的数算成24。

请编程计算出一副牌,任意抽取4张可有多少张不同有效组合数。(注:由于计算的时候只需要点数,不要花色,所以黑桃2等同于红桃2)

函数接口定义:
请仔细阅读测试主类的调用。

裁判测试程序样例:

在这里给出测试类:
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);

    int x = input.nextInt();
    System.out.print(Card24.count(x));

}

}

/* 请在这里填写答案 */
输入样例:
从键盘输入同一花色的牌数(不限于13张):

13
结尾无空行
输出样例:
输出有效组合的数量:

1820

class Card24{

public static int count(int x) {
    List<String> list = new ArrayList<String>();
    int i,j,k,l,count=0;
    int a[]=new int[4];
    for(i=1;i<=x;i++)
    {
        for(j=1;j<=x;j++)
        {
            for(k=1;k<=x;k++)
            {
                for(l=1;l<=x;l++)
                {
                    a[0]=i;
                    a[1]=j;
                    a[2]=k;
                    a[3]=l;
                    Arrays.sort(a);
                    String str;
                    str=Arrays.toString(a);
                    list.add(str);
                }
            }
        }
    }
    Set<String> set=new HashSet<String>();
    for(i=0;i<list.size();i++)
    {
        set.add(list.get(i));
    }
    return set.size();
}

}
不知道有没有更简单的做法,这算一种