您的位置:首页 > 编程语言 > C#

求一数组中某一范围内所有组合(不重复)C#

2009-11-06 23:28 267 查看
/******************************************************************

* *函数名:issame

* *功 能:判断数组是否在另一个二维数组

* *输 入:int[,] sArray, int m, int[] dArray, int n

* *返 回:bool

* *创建人:smallmuou

* *日 期:2009-10-31

*******************************************************************/

private bool issame(int[,] sArray, int m, int[] dArray, int n)

{

bool result = false;

int i, j, k;

for (i = 0; i < m; i++)

{

k = 0;

for (j = 0; j < n; j++)

{

if (sArray[i, j] == dArray[j])

k++;

}

if (k == n)

{

result = true;

break;

}

}

return result;

}

/*****************************************************************************

* *函数名:resort

* *功 能:求所有组合

* *输 入:int[] sArray,int arrayMax, int m, int[] dArray, int n, int sum, int max, int min,int MAX,int MIN

* *返 回:void

* *创建人:smallmuou

* *日 期:2009-10-31

******************************************************************************/

private void resort(int[] sArray,int arrayMax, int m, int[] dArray, int n, int sum, int max, int min,int MAX,int MIN)

{

int k;

if (m <arrayMax)

{

sum += sArray[m];

if (sum <= MAX && sum >= MIN)

{

dArray
= sArray[m];

for (k = n + 1; k < dArrayMax; k++)

dArray[k] = 0;

if (issame(totleArray, totleArrayMax, dArray, dArrayMax))

{

}

else

{

for (k = 0; k < dArrayMax; k++)

totleArray[totleCount, k] = dArray[k];

totleCount++;

}

resort(sArray,arrayMax, m + 1, dArray, n + 1, sum, max - sArray[m], min - sArray[m],MAX,MIN);

}

else if (sum < MIN)

{

dArray
= sArray[m];

for (k = n + 1; k < dArrayMax; k++)

dArray[k] = 0;

resort(sArray,arrayMax, m + 1, dArray, n + 1,sum, max - sArray[m], min - sArray[m],MAX,MIN);

}

else

{

for (k = m + 1; k < arrayMax; k++)

{

if (sArray[m] == sArray[k])

m++;

else

break;

}

}

sum -= sArray[m];

resort(sArray,arrayMax, m + 1, dArray, n,sum, max, min,MAX,MIN);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐