Module: (Python) 서브루틴. 재귀


Problem

1/12

재귀. 이게 뭔가요?

Theory Click to read/hide

재귀

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

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

프로그래밍에서는 이 기술을 재귀라고 합니다.
 
재귀는 주어진 기준을 기반으로 세트 자체 측면에서 객체 세트를 정의하는 방법입니다. 간단한 기본 사례.

재귀는 직접 호출하거나 다른 프로시저 및 함수를 통해 호출하는 프로시저(함수)입니다.
 
예시
<예비> def Rec(a): if (a>0): Rec(a-1) 인쇄(a)
재귀 작업을 도식적으로 순서도로 나타낼 수 있습니다.



Rec() 프로시저는 매개변수 3으로 실행되고, 매개변수 3으로 프로시저 내에서 매개변수 2로 프로시저가 호출되고, 매개변수 0으로 프로시저가 호출될 때까지 계속됩니다. 매개변수 0으로 프로시저가 호출되면, 재귀 호출은 더 이상 발생하지 않으며 매개변수가 0인 프로시저는 숫자 0을 인쇄하고 종료합니다. 그런 다음 매개변수 1이 있는 프로시저로 제어가 다시 전송되고 숫자 1을 인쇄하여 작업을 마치는 식입니다. 매개변수 3이 있는 프로시저 전에. 

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

Problem

구문 분석된 절차를 사용하여 기본 프로그램에 필요한 줄을 추가합니다.
프로그램이 그러한 응답을 제공하는 이유를 이해하십시오.