Вы можете использовать тот факт, что NcR
равно Nc(N-R)
. Формула:
N * (N - 1) * ... * (N - R + 1)
---------------------------------
1 * 2 * ... * R
Вы можете заметить, что произведение K
последовательных чисел всегда делится на K
. Итак, цикл будет выглядеть как
- умножить два числа из номинатора
- разделить на 2
- умножить на 3-е число от номинатора
- разделить на 3
- ...
- умножить на последний номер от номинатора
- разделить на
R
Либо просто используйте java.math.BigInteger
.