暴力枚举
24点
http://www.nowcoder.com/questionTerminal/263fa05acac5424a91214694a1c1eb8f
import java.util.Scanner;
public class Main {
public static int count;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[24];
for (int i = 1; i <= n; i++) {
int index = scanner.nextInt();
if (index < 1 || index > 23) {
continue;
}
nums[index]++;
}
for (int i = 1; i < 13; i++) {
for (int j = 1; j <= nums[i]; j++) {
if (i * j > 24) {
break;
} else if (i * j == 24) {
count++;
break;
} else {
count(nums, i + 1, 24 - i * j);
}
}
}
System.out.println(count);
scanner.close();
}
public static void count(int[] nums, int startIndex, int sum) {
if (startIndex == nums.length) {
return;
}
for (int j = 0; j <= nums[startIndex]; j++) {
if (startIndex * j > sum) {
break;
} else if (startIndex * j == sum) {
count++;
break;
} else {
count(nums, startIndex + 1, sum - startIndex * j);
}
}
}}
