查看: 821|回复: 3
|
如何取得一组号码的可能变化?
[复制链接]
|
|
我要如何取得一组号码的可能变化?
比如说 [1114]
可能的组合为
1)1114
2)4111
3)1411
4)1141
大家有何建议吗? 我是用vb的 |
|
|
|
|
|
|
|
发表于 28-12-2006 11:04 AM
|
显示全部楼层
用一个 Mod 10 的function 来拿到, 最后一个的number咯...... |
|
|
|
|
|
|
|

楼主 |
发表于 28-12-2006 11:25 AM
|
显示全部楼层
回复 #2 zchong1022 的帖子
但我要得到的是可能的组合配对
比如说 [1114]
我要得到以下的资料
1)1114
2)4111
3)1411
4)1141 |
|
|
|
|
|
|
|

楼主 |
发表于 29-12-2006 12:23 PM
|
显示全部楼层
下列解法只是隨手寫來並不是好的解法
希望可以拋磚引玉...
private string getStringFromArray(string[] stringArray)
{
StringBuilder sb = new StringBuilder();
foreach (string s in stringArray)
{
sb.Append(s + ", ");
}
return sb.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
// Set up arrays
string[] initialArray = { "1", "2", "3", "4" };
string[] possibleArray= new string[4];
// first loop
for (int i = 0; i < 4; i++)
{
possibleArray = initialArray[0];
// second loop
for (int j = 0; j < 4; j++)
{
if (j != i)
{
possibleArray[j] = initialArray[1];
// third loop
for (int k = 0; k < 4; k++)
{
if ((k != i) && (k != j))
{
possibleArray[k] = initialArray[2];
// fourth loop
for (int l = 0; l < 4; l++)
{
if ((l != i) && (l != j) && (l != k))
{
possibleArray[l] = initialArray[3];
sb.AppendLine(getStringFromArray(possibleArray));
}
}
}
}
}
}
}
textBox1.Text = sb.ToString() + "\n"+ sb.Length.ToString();
} |
|
|
|
|
|
|
| |
本周最热论坛帖子
|