1. 程式人生 > >第二次周賽B題(HDU-2044)

第二次周賽B題(HDU-2044)

問題連結:https://vjudge.net/problem/HDU-2044

Get:這是一道遞推求解的題目,可能的路線數是斐波那契數列,只不過前幾項不同:f(0)=0,f(1)=1,f(2)=2,f(3)=3.後面的值由f(n)=f(n-1)+f(n-2)可以求出。需要注意的是,輸入值的範圍是0<a<b<50,到最後的數會很大,所以用__int64long long定義變數。

AC程式碼:

#include <iostream>
using namespace std;
int main()
{
	int i, N, a, b;
	__int64 c[50] = { 1,2,3 };
	while (cin >> N)
	{
		while (N--)
		{
			cin >> a >> b;
			for (i = 3; i < b - a; i++)
			{
				c[i] = c[i - 1] + c[i - 2];
			}
			cout << c[b - a - 1] << endl;
		}
	}
}