题目
思路
定义一个数组,假设出发点是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;
}