반응형
ACMICPC 1003 : 피보나치 함수
<결과>
<코드>
#include <iostream>
using namespace std;
int main()
{
int num_cases = 0;
cin >> num_cases;
for (int i = 0; i < num_cases; ++i)
{
int n = 0;
cin >> n;
if (n == 0) cout << "1 0" << endl;
else if (n == 1) cout << "0 1" << endl;
else
{
// 0 count, 1 count
// 1, 0 (f1)
// 0, 1 (f0)
int m[2][2] = { { 0, 1 }, { 1, 0 } };
for (int j = 2; j < n; ++j)
{
int new_ones = m[0][1] + m[1][1];
int new_zeros = m[0][0] + m[1][0];
m[1][0] = m[0][0];
m[1][1] = m[0][1];
m[0][1] = new_ones;
m[0][0] = new_zeros;
}
cout << m[0][0] + m[1][0] << " " << m[0][1] + m[1][1] << endl;
}
}
return 0;
}
반응형