7. 피보나치 수열
제목 설명
모두들 피보나치 수열을 알고 있습니다. 지금 정수 n을 입력해 주십시오. 피보나치 수열의 n항을 출력해 주십시오. (0부터, 0항은 0).n<=39
해법1: 귀속을 사용하지만 귀속은 새로운 방법의 창고를 열 수 있기 때문에 시간과 공간 비용이 순환보다 크고 심각한 문제가 있다. 즉, 창고가 넘쳐나는 것이다.
public class Solution {
public int Fibonacci(int n) {
if(n <= 0)
return 0;
if(n == 1)
return 1;
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
실행 시간: 1287ms 사용 메모리: 9572k
해법2: 해법1의 나쁜 점은 중복된 호출 횟수가 너무 많기 때문에 중복된 계산을 없애려면 우리는 이미 얻은 결과를 저장하여 다음 계산에 사용할 수 있다.
public class Solution {
public int Fibonacci(int n) {
int result = 0;
int preFirst = 1;
int preLast = 0;
if(n == 0) return 0;
if(n == 1) return 1;
for(int i = 2; i <= n; i ++){
result = preFirst + preLast;
preLast = preFirst;
preFirst = result;
}
return result;
}
}
실행 시간: 19ms 사용 메모리: 9380k
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.