Module: 서브루틴. 재귀


Problem

1/12

재귀. 이게 뭔가요?

Theory Click to read/hide

프로시저 또는 함수는 내부에 있는 다른 프로시저에 대한 호출을 포함할 수 있습니다. 포함하여 서브루틴은 자신을 호출할 수 있습니다. 이 경우 컴퓨터는 상관하지 않습니다. 그는 언제나처럼 위에서 아래로 만난 명령을 일관되게 실행합니다.

수학을 기억한다면 그곳에서 수학적 귀납법의 원리를 만날 수 있다. 그것은 다음과 같습니다: 어떤 진술은 모든 자연적인 n if
에 대해 참입니다.     1)  n = 1에 대해 유효합니다.
    2) 임의의 자연 n = k 에 대한 진술의 유효성에서 n = k+1에 대해 참이라는 결론이 나옵니다.

프로그래밍에서 이 기술을 재귀라고 합니다.

재귀는 주어진 간단한 기본 사례를 기반으로 집합 자체의 관점에서 개체 집합을 정의하는 방법입니다.

재귀 직접 호출하거나 다른 프로시저 및 함수를 통해 호출하는 프로시저(함수)입니다.
재귀 절차의 예:

보이드 Rec(int a)
{
  if(a>0) { Rec(a-1); }
  Console.WriteLine(a);
}

재귀 작업은 도식적으로 순서도로 나타낼 수 있습니다.

 
Rec() 프로시저는 매개변수로 실행됩니다. 3 그런 다음 매개변수 3이 있는 프로시저 내에서 매개변수 2가 있는 프로시저가 호출되고 매개변수 0이 있는 프로시저가 호출될 때까지 계속 작동합니다. 그런 다음 매개변수 1이 있는 프로시저로 제어가 다시 전송되고 숫자 1을 인쇄하여 작업을 마치는 식입니다. 매개변수 3이 있는 프로시저 전에. 

호출된 모든 프로시저는 작업이 완료될 때까지 메모리에 저장됩니다. 동시 프로시저의 수를 재귀 깊이라고 합니다.

Problem

파싱된 프로시저를 사용하여 메인 프로그램에 필요한 줄을 추가합니다.
프로그램이 그러한 응답을 제공하는 이유를 이해하십시오.