HDU2044_斐波那契

1.题目链接。题意其实十分的明显,只能向右走,所以就是只能是由两个方向转移,n-1和n-2.这是明显的斐波那契的特征。知道这些其实还是不够的,为什么?因为输入的是两位数啊,不是仅仅从起点走到当前点,其实这等价于二者之差的斐波那契数(为什么?可以自己证明一下,应该还是很简单的)。分析好了这写,这题已经解决了。

#include<iostream>
using namespace std;
#define ll long long
ll dp[100];
#pragma warning(disable:4996)
int main()
{
	dp[1] = 1;
	dp[2] = 2;
	for (int i = 3; i < 100; i++)
	{
		dp[i] = dp[i - 1] + dp[i - 2];
	}
	int T;
	scanf("%d", &T);
	while (T--)
	{
		int a, b;
		scanf("%d%d", &a, &b);
		printf("%lld\n", dp[b - a]);
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_41863129/article/details/85469825