62,635
社区成员




public class Test {
public static void main(String[] args) {
int type = 6; // 每个骰子的变化数量
int num = 3; // 骰子的个数
// 计算有重复的组合数量
// 1,2,5;1,5,2;2,1,5;2,5,1;5,1,2;5,2,1 仅作为一组
int comb = factorial(type, type + num - 1) / factorial(num);
System.out.println(comb);
}
/**
* 计算 num 的阶乘
* @param num
* @return
*/
private static int factorial(int num) {
return factorial(1, num);
}
/**
* 计算 start * (start + 1) * (start + 2) * ... * end 的值
* @param start 阶乘的起始数
* @param end 阶乘的结束数
* @return
*/
private static int factorial(int start, int end) {
int result = start > 0 ? start : 1;
while(end > start) {
result *= end--;
}
return result;
}
}
(6 + k - 1)!
--------------
k! * 5!