題目
思路
定義一個數組,假設出發點是N,終點是M。則N、M之間的元素i是點i到終點M的路線數。根據題目可以發現,點i到M的路線數等於i+1的路線數加i+2的路線數;且M-2到M的路線數等於2,M-3到M的路線數等於3。
代碼實現
#include<iostream>
using namespace std;
int main()
{
int N;
cin >> N;
while (N--)
{
int a, b;
cin >> a >> b;
long long num[100] = { 0 };
for (int j = b; j > a-1; j--)
{
if (j + 2 < b) num[j] = num[j + 1] + num[j + 2];
if (j == b - 1)num[j] = 1;
if (j == b - 2)num[j] = 2;
if (j == b - 3)num[j] = 3;
}
if (a == b) num[a] = 1;
cout << num[a] << endl;
}
return 0;
}