Python 귀속 함수와 피보나치 수열

4770 단어
정의: 함수 내부에서 다른 함수를 호출할 수 있습니다.만약 하나의 함수가 내부에서 자신 자체를 호출한다면, 이 함수는 귀속 함수이다.
계승 실례
1 n = int(input(">>:"))
2 
3 
4 def f(n):
5     s = 1
6     for i in range(2, (n + 1)):
7         s *= i
8     return s
9 print(f(n))

차례로 돌아가다
1 def factorial_new(n):
2  
3     if n==1:
4         return 1
5     return n*factorial_new(n-1)
6  
7 print(factorial_new(3))

귀속 함수의 특징:
1 자체 함수 호출
2 문제 규모가 지난번에 비해 감소하는 뚜렷한 종결 조건이 있다
장점: 정의가 간단하고 논리가 명확하며 모든 귀속 함수는 순환 방식으로 쓸 수 있지만 순환의 논리는 귀속이 명확하지 않다.
그러나 귀속의 효율이 높지 않고 귀속 단계가 너무 많으면 창고가 넘쳐나 1000층 정도가 된다.
피보나치 수열
 1 def fibNum(n):          # 
 2     a, b = 0, 1
 3     for i in range(n):
 4         b, a = a+b, b
 5     return b
 6 n = int(input(">>:"))
 7 if n == 1:
 8     print(0)
 9 elif n == 2:
10     print(1)
11 else:
12     print(fibNum(n-2))

귀속으로 쓰다
 1 def fibo(n):
 2     before = 0
 3     after = 1
 4     if n == 0 or n == 1:
 5         return n
 6 
 7     if n <= 3:
 8         return 1
 9     return fibo(n-1)+fibo(n-2)
10 
11 print(fibo(3))

귀속 효율이 낮아서 숫자가 너무 크면 느려진다.
 
다음으로 전송:https://www.cnblogs.com/bw13/p/5848628.html

좋은 웹페이지 즐겨찾기