https://www.acmicpc.net/problem/2747
피보나치 수열 기본문제. 숫자가 크지는 않지만, 45에 근접할수록 시간이 꽤 걸리기 때문에 다른 방식으로 풀어보자.
이번 문제는 피보나치 수열의 일반항으로 접근해보았다. 피보나치 수열의 일반항은 다음과 같다.
#include <stdio.h>
#include <math.h>
#define ULL unsigned long long
#define A (1 + sqrt(5)) / 2
#define B (1 - sqrt(5)) / 2
int fibo(int n) {
return (int)(((pow(A, n) - pow(B, n)) / sqrt(5)));
}
int main () {
int n;
scanf("%d", &n);
printf("%d", fibo(n));
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 9471번 C++ 풀이 (0) | 2021.12.24 |
---|---|
백준 2748번 C언어 풀이 (0) | 2021.12.23 |
백준 1003번 C++ 풀이 (0) | 2021.12.22 |
백준 1629번 C언어 풀이 (0) | 2021.12.22 |
백준 1920번 C, C++ 풀이 (0) | 2021.12.07 |