题解 | #数组分组#递归
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
import java.math.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.stream.*; import java.util.regex.*; import java.util.function.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int count = in.nextInt(); int[] a = new int[count]; for (int i = 0; i < count; i++) { a[i] = in.nextInt(); } System.out.println(group(a, 0, 0, 0)); } static boolean group(int[] a, int index, int sum5, int sum3) { // System.out.printf("index: %d, sum5: %d, sum3: %d\n", index, sum5, sum3); if (index == a.length) { if (sum3 == sum5) { return true; } else { return false; } } int curr = a[index]; if (curr % 5 == 0 ) { // 注意这里不能使用index++ return group(a, index + 1, sum5 + curr, sum3); } else if (curr % 3 == 0) { return group(a, index + 1, sum5, sum3 + curr); } else { return group(a, index + 1, sum5, sum3 + curr) || group(a, index + 1, sum5 + curr, sum3); } } }