1. 개념
이 수열은 기본적으로 자연의 황금비율을 설명할 때 가장 많이
쓰이는 수열입니다.
수열이 커지면 커질수록 황금비율(1.618)에 근접하게 됩니다.
한 쌍의 토끼가 매월 한 쌍의 토끼를 낳고, 태어난 한 쌍의 토끼가
다음 달부터 한 쌍의 토끼를 매월 낳기 시작한다면, 처음 한 쌍의
토끼로부터 1년간 합계 몇 쌍의 토끼가 태어날 것인가?
2. 특징
"해당 수와 전의 수를 더한 수를 다음 수로 나타낸 것"
ex) 데이지 꽃, 코스모스/나뭇가지의 성장
3. 복잡도
a. 루프를 이용한 구현 : O(n)
b. 재귀를 이용한 구현 : O(n^2)
4. 구현
a. 루프를 이용한 구현
int forfibo(int n)
{
int i, tmpe = 0;
int firstnumber = 0;
int secondnumber = 1;
if( n <= 1)
return n;
else {
for( i = 2; i <= n; i++) {
temp = firstnumber + secondnumber;
firstnumber = secondenumber;
secondnumber = temp;
}
return secondnumber;
}
}
b. 재귀를 이용한 구현
int refibo(int n)
{
if( n <= 1)
return ;
else
return refibo(n - 1) + refibo(n - 2);
}
'IT > 알고리즘' 카테고리의 다른 글
스트링에 대한 permutation을 구하는 알고리즘 (0) | 2008.07.15 |
---|---|
mmap (메모리맵) (0) | 2008.07.08 |
문자열을 뒤집는 프로그램 (0) | 2008.07.08 |
call by value vs. call by reference (0) | 2008.07.08 |
C 프로그램에서 데이터형 (0) | 2008.07.08 |