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;
}


'Programming > Judge' 카테고리의 다른 글

Codeforces Problem 495A : Digital Counter  (0) 2014.12.18
ACMICPC 1157 : 단어 공부  (0) 2014.12.16
ACMICPC 1920 : 수 찾기  (0) 2014.12.16
Algospot : ENCRYPT  (0) 2014.12.15
ACMICPC 1003 : 피보나치 함수  (0) 2014.12.15
ACMICPC 1008 : A/B  (0) 2014.12.15
ACMICPC 1205 : 등수 구하기  (0) 2014.12.13
ACMICPC 1002 : 터렛  (0) 2014.12.12
ACMICPC 1000 : A+B  (0) 2014.12.12
Algospot : LECTURE  (0) 2014.12.12
Algospot : DRAWRECT  (0) 2014.12.11
posted by deviAk