안녕하세요. 오늘은 피보나치수를 구할 거예요.

문제

https://www.acmicpc.net/problem/9711

아이디어

P의 범위가 작으므로 입력을 받을때마다 새로 만들어서 풀어주면 됩니다.

소스코드

#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;

ll fib(ll x, ll mod)
{
	ll a = 1, b = 1, c;

	while (--x)
	{
		c = (a + b) % mod;
		a = b;
		b = c;
	}
	return a;
}
int main(void)
{
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	ll T, P, Q, tc = 0;

	cin >> T;
	while (T--)
	{
		cin >> P >> Q;
		cout << "Case #" << ++tc << ": " << fib(P, Q) << "\n";
	}
}


감사합니다.

0개의 댓글