https://www.acmicpc.net/problem/2747
2747번: 피보나치 수
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
난이도 : 브론즈 2
태그 : 수학, 구현
설명
점화식을 배울 때 예시로 많이 쓰이는 피보나치 수 입니다.
이전 두 수의 합이 다음 수가 된다는 점에서,
n1, n2의 합을 더한 수를 저장해놓고,
n1에 n2를 저장하고, n1과 n2를 저장해논 값을 n2에 저장하는 방식으로 풀 수 있습니다.
소스코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n, n1 = 0, n2 = 1;
int cnt = 2;
scanf("%d", &n);
if (n <= 2) printf("1");
else {
while (cnt++ <= n)
{
int sum = n1 + n2;
n1 = n2;
n2 = sum;
}
printf("%d", n2);
}
return 0;
}
'코딩테스트 > C | C++' 카테고리의 다른 글
[백준 1000번] [C++] A + B (0) | 2023.04.17 |
---|---|
[백준 2748번] [C언어] 피보나치 수 2 (0) | 2023.02.01 |
[백준 16486번] [C언어] 운동장 한 바퀴 (0) | 2023.01.16 |
[백준 11971번] [C언어] 속도 위반 (0) | 2022.12.02 |
[백준 24389번] [C언어] 2의 보수 (0) | 2022.12.02 |