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();
}
}
不知道有没有更简单的做法,这算一种