一只小蜜蜂...

本题跟超级楼梯类似, 当前一步的情况由n-1与n-2决定, 此时f()函数中传入的参数是两点之间的间隔+1(也就是转换成从点1开始到达其他点的路线数)
还需注意本题的数据类型(long long int) 输入输出的占位符为%lld
#include <cstdio>
long long int memo[55];
long long int f(long long int n)
{
memo[1] = memo[2] = 1;
memo[3] = 2;
for(long long int i = 4; i <= n; ++ i)
{
memo[i] = memo[i - 1] + memo[i - 2];
}
return memo[n];
}
int main()
{
long long int n, a, b;
scanf("%lld", &n);
while(n --)
{
scanf("%lld %lld", &a, &b);
printf("%lld\n", f(b - a + 1));
}
return 0;
}

浙公网安备 33010602011771号