• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

재귀함수에서 지역변수와 전역변수에 대한질문입니다!

21.12.24 15:21 작성 조회수 343

0

안녕하세요! 좋은강의 너무잘보고있습니다!

다름이아니라 i를 전역변수로 선언했을때 값이 

계속 1로나와서 질문드립니다.

브레이크포인트걸어서 원인을 파악하려고해도

모르겠어서 질문드립니다..

이하코드는 i가 전역인것제외 강사님의 코드와 일치합니다

 

int map[21][21], n, cnt = 0, ch[21], i;

void DFS(int x)

{

if (x == n)

{

cnt++;

}

else

{

for (i = 1; i <= n; i++)

{

if (map[x][i] == 1 && ch[i] == 0)

{

ch[i] = 1;

DFS(i);

ch[i] = 0;

}

 

}

}

}

int main()

{

// #64 경로탐색(DFS)

 

int m, a, b;

cin >> n >> m;

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

{

cin >> a >> b;

map[a][b] = 1;

}

ch[1] = 1;

DFS(1);

cout << cnt;

}

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

재귀함수는 본인의 지역변수만 컨트롤하면서 백트랙킹을 합니다. 전역변수는 컨트롤하지 못합니다.