3 자리 숫자의 모든 순열을 재귀 적으로 찾는 작업을하고 있습니다.3 자리 숫자의 재귀 순열
나는 다음과 같은 순열 방법을 만들기로 피곤 :
static int a = 1;
static int b = 2;
static int c = 3;
static int aCount;
static int bCount;
static int cCount;
static void perm(int a, int b, int c)
{
Console.WriteLine("({0}, {1}, {2})", a, b, c); // (1,2,3)
if (aCount < 1 && bCount<1 &&cCount<1)
{
aCount++;
perm(a, c, b);
}
else
if (aCount==1 && bCount < 1 && cCount<1)
{
bCount++;
perm(b, a, c);
}
else
if (aCount == 1 && bCount == 1 && cCount < 1)
{
perm(b,c,a);
}
else
if (aCount==1 && bCount==1 && cCount < 1)
{
cCount++;
perm(c, a, b); //c b a
}
else
if (aCount == 1 && bCount == 1 && cCount == 1)
{
perm(c, b, a);
}
}
나는 각 단계에서 세부 사항과 함께, 모든 경우를 커버하려고, 여전히 나는 갑자기 스택 오버 플로우 예외를 얻을.
귀하의 기고에 감사드립니다. 감사의 뜻을 전합니다.
시작하기 전에 aCount, bCount 및 cCount를 0으로 초기화하십시오. – mostruash
오, 미안, 내가 실험하고있는 동안 나는 그것을 놓쳐 버렸음에 틀림 없어. P – Obzajd