三个整数数组a [],b [],c []。数组长度是可变的,并且每个数组中的数字不能重复。 a []中的数字取0到13,长度至少为9,b []中的数字取自[],c []中的数字取自b []。从三个数组中取9个数字,每个数组中的每个数字只能占用1次,得到组合数。
例1:
a[]={0,1,2,3,4,5,6,7,8}
b[]={1,2}
c[]={1}
return totalCount=6;
因为(' a'表示来自数组a [])
0,1a,2a,3,4,5,6,7,8;
0,1a,2b,3,4,5,6,7,8;
0,1b,2a,3,4,5,6,7,8;
0,1b,2b,3,4,5,6,7,8;
0,1c,2a,3,4,5,6,7,8;
0,1c,2b,3,4,5,6,7,8;
例2:
a[]={0,1,2,3,4,5,6,7,8,9,10,11,12}
b[]={0,1,2,3,4}
c[]={0,1,2,3,4}
return totalCount=47985
我做了一些工作,但它只在c []的长度为0或[] == 9
的长度时有效int num=0;
if(a.size()<9){
num = 0;
}else{
if(b.size()==0){
num= combineNum(a.size(),9).intValue();
}else{
if(three.size()==0){
num=combineNum(a.size(),9).intValue();
for(int i=1;i<=b.size();i++){
num=num+combineNum(a.size()-i,9-i).intValue()
*combineNum(b.size(),b.size()-i).intValue();
}
}else{
if(c.size()==b.size()){
if(a.size()==9){
num=(int)Math.pow(3,c.size());
}else{
num=combineNum(a.size(),9).intValue();
for(int i=1;i<=b.size();i++){
if(i==1){
num=num+combineNum(a.size()-i,9-i).intValue()
*combineNum(2*b.size(),i).intValue();
}else{
num=num+combineNum(a.size()-i,9-i).intValue()
*(combineNum(2*b.size(),i).intValue()-
b.size()*combineNum(2*b.size()-2*(i-1),i-1).intValue());
}
}
}
}else {
if(a.size()==9){
num= (int)(Math.pow(3,c.size())*Math.pow(2,b.size()-c.size())
*combineNum(a.size(),9).intValue());
}else{
num=-1;
}
}
}
}
}
return num;
任何人都可以帮助我吗?
我需要从三个数组中获取9个数字,数字可以来自任何数组,但不能重复。就像我的代码一样,我计算了计数,而c.length == 0或a.length == 9.任何人对其他情况都有任何想法?
答案 0 :(得分:0)
我已经解决了这个问题。 把我的代码放在下面
$("#dt1").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function (date) {
var dt2 = $('#dt2');
var startDate = $(this).datepicker('getDate');
var minDate = $(this).datepicker('getDate');
dt2.datepicker('setDate', minDate);
startDate.setDate(startDate.getDate() + 360);
//sets dt2 maxDate to the last day of 30 days window
dt2.datepicker('option', 'maxDate', startDate);
dt2.datepicker('option', 'minDate', minDate);
$(this).datepicker('option', 'minDate', minDate);
}
});
$('#dt2').datepicker({
dateFormat: "dd-M-yy"
});
答案 1 :(得分:0)
计算每个数字重复并乘以它们的次数,这些是非常简单的数学
一个[] = {0,1,2,3,4,5,6,7,8}
B [] = {1,2}
C [] = {1}
你有3个人和2个人,所以你将拥有:
1(0)* 3(可能的)* 2(可能的两个)* 1(3)* 1(4)* 1(5)* 1(6)* 1(7)* 1(8)= 6