我有一个char数组:
static char[] numbers = {'0','1','2','3','4','5','6','7','8','9'};
我需要制作一个功能,将它们组合在最多3位数字的所有可能组合中。像这样:
0
1
2
3
00
01
02
03
10
11
12
13
20
21
22
23
30
31
32
33
000
001
002
003
010
011
就像那样,但是有了所有可能的组合。 到目前为止,我已经使用 for 循环 if ,但我发现使用递归函数更好 最好和最快的方法是什么?
答案 0 :(得分:0)
嗯,这是我提出的代码。
static char[] numbers = {'0','1','2','3','4','5','6','7','8','9'};
static bool continuar = true;
private static void Start(int maxLength)
{
for (int i = 0; i <= maxLength; i++)
Permutations(i, 0, "");
}
private static void Permutations(int keyLength, int position, string baseString)
{
bool print = true;
if (continuar)
{
for (int i = 0; i < numbers .Length; i++)
{
string temp = baseString + numbers [i];
if (position <= keyLength - 1)
{
Permutations(keyLength, position + 1, temp);
print = false;
}
if (continuar && print)
Console.WriteLine(temp);
}
}
}