From edf01b772d03aefa2c9c60bda0fa9dedf3557be8 Mon Sep 17 00:00:00 2001 From: neko Date: Sun, 11 Oct 2020 16:20:22 +0800 Subject: [PATCH] Update Combination.java --- .../src/main/java/cn/hutool/core/math/Combination.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Combination.java b/hutool-core/src/main/java/cn/hutool/core/math/Combination.java index 59dffab67..ae32d3a33 100644 --- a/hutool-core/src/main/java/cn/hutool/core/math/Combination.java +++ b/hutool-core/src/main/java/cn/hutool/core/math/Combination.java @@ -6,6 +6,7 @@ import java.util.Arrays; import java.util.List; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; /** * 组合,即C(n, m)
@@ -53,11 +54,10 @@ public class Combination implements Serializable { * @return 组合数 */ public static long countAll(int n) { - long total = 0; - for (int i = 1; i <= n; i++) { - total += count(n, i); + if (n < 0 || n > 63) { + throw new IllegalArgumentException(StrUtil.format("countAll must have n >= 0 and n <= 63, but got n={}", n)); } - return total; + return n == 63 ? Long.MAX_VALUE : (1L << n) - 1; } /**