一只小蜜蜂...

本题跟超级楼梯类似, 当前一步的情况由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;
}

  

posted @ 2019-08-02 13:56  青衫客36  阅读(159)  评论(0编辑  收藏  举报