2016-11-14 6 views
2

인터뷰 질문에 다음과 같은 내용이 있습니다. 제공된 매개 변수 번호에서 재귀 함수로 번호를 인쇄하려면 어떻게해야합니까?역순으로 재귀 함수를 호출하려면 어떻게해야합니까?

함수 이름이 recursiveFunc이라고 말합니다. 내가 전화하면

recursiveFunc(100); 

등이 1,2,3-100 등으로 인쇄되어야합니다.

다른 초기화 변수 등을 사용해서는 안됩니다.

의견이 있으십니까?

+2

"역순"과 무슨 관련이 있습니까? – ajb

+0

그것은해야합니다. 그것은 단지 작은 트릭이지만 악마에 불과합니다. 당신이 어떤 일을하고 나서 스스로를 부르는 것처럼. 그러나이 경우에는 먼저 자신을 호출 한 다음 역순으로 처리합니다. –

답변

3
public void recursiveFunc(int n) { 
    if (n <= 0) 
     return; 
    recursiveFunc(n-1); 
    System.out.println(n); 
} 

인쇄를 재귀 후.

5

그냥 같은

public void recursiveFunc(int n) { 
    if (n <= 0) return; 
    recursiveFunc(n-1); // recurses 
    System.out.println(n); // prints 1 first 
} 
+0

내게 트릭 기다릴 테니 기다려 봐. –

+1

세 번 같은 대답을했습니다! 트릭이 아닙니다. –

+0

Hurrrahhhhhhhhhhhhh. –

5

뭔가를 재귀 후 값을 출력 :

void recursiveFunc(int n) 
{ 
    if (n == 0) 
    { 
     return; 
    } 
    recursiveFunc(n-1); 
    System.out.println(n); 
} 
+0

이것은 오름차순이 아닙니다. 내림차순으로 인쇄됩니다. 100,99,98 –

+3

번과 같습니다. 1에서 100까지 인쇄합니다. 먼저 스택을 100에서 1로 이동 한 다음 인쇄합니다. 그러므로 그것은 1에서 100까지 인쇄 할 것입니다. – FallAndLearn

+0

당신은 보스입니다. 두 답이 모두 정확합니다. 전화를 걸면 인쇄를 알지 못했습니다. 감사 –

관련 문제