Python 귀속 함수와 피보나치 수열
계승 실례
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.