2014-10-16 3 views
-4
def fudz(n): 
    if n <= 2: 
     return 1 
    print("nom" * n) 
    return fudz(n-1) + fudz(n//2) 

result = fudz(4) 

누군가이 기능으로 단계별로 나에게 줄 수 있습니까?반환 값은 어떻게 작동합니까?

+0

* 재귀 *를 살펴보십시오. – alex

+0

그것이 도움이된다면 재귀 함수입니다 ;-). – mgilson

+0

아니요, 그러나 문제를 해결하고 구체적인 질문이있는 경우 Google에서 도와 드리겠습니다. –

답변

1

이것은 재귀 함수입니다. 즉, 이미 답변을 알고있는 기본 사례에 도달 할 때까지 문제의 단순화 된 인스턴스에서 자체의 인스턴스를 호출하는 것을 의미합니다. 함수에 대한 호출은 자체 스택 프레임에서 발생하므로 n에 대해 자체 값을 갖게됩니다.

직접 걸을 수 있습니다. 먼저 n==2 일 때 어떤 일이 일어나는지 생각해보십시오. 그런 다음 n==3에 대해 생각하고 이해할 때까지 n을 늘리십시오.