728x90
반응형
1003번: 피보나치 함수
문제
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
풀이
규칙을 찾는 것이 중요한 문제다.
N | 0의 횟수 | 1의 횟수 |
0 | 1 | 0 |
1 | 0 | 1 |
2 | 1 | 1 |
3 | 1 | 2 |
4 | 2 | 3 |
여기서 0의 횟수와 1의 횟수를 각각 살펴보면
0의 횟수: 1, 0, 1, 1, 2, ...
1의 횟수: 0, 1, 1, 2, 3, ...
이므로 각각은 1, 0으로 시작하는 피보나치 수열과 0, 1로 시작하는 피보나치 수열이다.
따라서 각각에 대한 피보나치 수열을 구하는 문제다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
int zero[41] = {1, 0};
int one[41] = {0, 1};
while (t--) {
int n;
cin >> n;
for (int i = 2; i <= n; i++) {
zero[i] = zero[i - 1] + zero[i - 2];
one[i] = one[i - 1] + one[i - 2];
}
cout << zero[n] << ' ' << one[n] << '\n';
}
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 1009 분산처리 (0) | 2023.02.06 |
---|---|
[백준 / BOJ] C++ 1008 A/B (0) | 2023.02.06 |
[백준 / BOJ] C++ 1001 A-B (0) | 2023.02.06 |
[백준 / BOJ] C++ 1000 A+B (0) | 2023.02.06 |
[백준 / BOJ] C++ 2557 Hello World (0) | 2023.02.06 |