0. 문제
코드업 1855 피보나치 수열
https://codeup.kr/problem.php?id=1855
1. 설계 & 분석
2. 순서도
result = Fibnonacci(n-2) + Fibonacci(n-1)
rescursive Loop FlowChart는 그리는 사람마다 방식이 조금씩 달랐다.
원래 디자인 문서와 순서도는 제 3자가 구현해 낼 수 있으면 잘 그린거라고 했다.
나는 아닌가?!??!
3. 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <stdio.h>
unsigned int Fibonacci(unsigned int n)
{
unsigned result = 1;
if(n <= 2)
{
result = 1;
}
else
{
result = Fibonacci(n-2) + Fibonacci(n - 1 );
}
return result;
}
int main(void)
{
unsigned int n = 0, result = 0;
scanf("%d", &n);
printf("%d ",Fibonacci(n));
return 0;
}
|
in C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <iostream>
using namespace std;
unsigned int Fibonacci(unsigned int n)
{
unsigned result = 1;
if(n <= 2)
{
result = 1;
}
else
{
result = Fibonacci(n-2) + Fibonacci(n - 1 );
}
return result;
}
int main(void)
{
unsigned int n = 0, result = 0;
cin >> n;
cout << Fibonacci(n) <<endl;
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
in C++
4. 시간복잡도 분석
Lower Bound: O(2^n/2)
Upper Bound: O(2^n)
5. 재귀가 아닌 Dynamic Programming 기법으로 구현하는 피보나치
https://m-falcon.tistory.com/118
'Algorithm > Algorithm (문제풀이)' 카테고리의 다른 글
피보나치 수열 2 (Memoization, Dynamic Programming ver) (0) | 2019.11.05 |
---|---|
[백준 1427] 소트 인사이드 (0) | 2019.11.01 |
[백준 10814] 나이순 정렬하기 (0) | 2019.10.29 |
[백준 2751] 정렬하기 2 (0) | 2019.10.18 |
[백준 2750] 정렬하기 (0) | 2019.10.11 |