-
백준 2747 피보나치 수 [C++]알고리즘 2018. 11. 25. 22:19
문제 링크 : https://www.acmicpc.net/problem/2747
소스코드
#include <iostream>using namespace std;int main() {int n=0, n_one, n_two;n_two = 0;n_one = 1;int N;cin >> N;int sum = 0;if (N == 0) cout << 0;else if (N == 1) cout << 1;else {for (int i = 2; i <= N; ++i) {n = n_two + n_one;n_two = n_one;n_one = n;}cout << n;}}피보나치 수열을 계산할 때 재귀함수에 개념을 사용 할 수도 있지만, 재귀 함수를 사용하는 것은 매우 비효율적입니다.
예를 들어 6번째 항을 구하기 위해서 4번째 항을 구하는 함수가 2번이나 계산되기 때문입니다.
따라서 저는 반복을 통한 피보나치 수열을 구현 하였습니다.
2번째 항부터 반복을 시작합니다.
처음에 n_two 는 0번째 항이고 n_one는 1번째 항입니다.
'알고리즘' 카테고리의 다른 글
Kruskal 알고리즘 구현 과제 (0) 2019.05.14 백준 11718,11719 그대로 출력하기 1 2 [C++] (0) 2018.11.25 백준 1021 회전하는 큐 [C++] (0) 2018.11.25 백준 10866 덱 [C++] (0) 2018.11.25 백준 1158 조세퍼스 문제 [C++] (0) 2018.11.25