본문 바로가기
Programming/Judge

ACMICPC 1003 : 피보나치 함수

by deviAk 2014. 12. 15.
반응형

ACMICPC 1003 : 피보나치 함수


https://www.acmicpc.net/problem/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;
}


반응형