斐波拉契数列的应用

题目

有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。

Input
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。

Output
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。

样例

Sample Input

2
1 2
3 6

Sample Output

1
3

思路

观察给出的图,以f[i]表示相隔距离为i 的两个房间之间的路线数;
我们发现,若要到达第i个房间,则会通过第i-1,i-2号房间,而从i-1和i-2房走到第I号房有分别只有一种路线;
所以,f[i]=f[i-1]+f[i-2]

代码

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define ll long long
#define re register int
#define fp(i,a,b) for(re i=a,I=b;i<=I;++i)
#define fd(i,a,b) for(re i=a,I=b;i>=I;--i)
#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout);
using namespace std;
ll f[50];
inline ll solve(int a){
if(a==1) return 1;
if(a==2) return 2;
for(register int i=3;i<=a;i++) f[i]=f[i-1]+f[i-2];
return f[a];
}
int main(){
//file("s");
int n;
cin>>n;
f[1]=1;
f[2]=2;
for(register int i=1;i<=n;++i) {
int a,b;
cin>>a;
cin>>b;
cout<<solve(b-a)<<endl;
}
return 0;
}

最新文章

  1. Java全角、半角字符的关系以及转换
  2. SQL初级第三课(下)
  3. C#数据结构
  4. getResource().getPath()返回的路径空格变成了 %20
  5. Maven测试
  6. .frm文件
  7. 自定义滚动条CSS样式
  8. c#基础编程—泛型
  9. Python番外 事务 那些事
  10. [SOJ]Easy sort (归并排序)
  11. Java的精确整数计算-Bigdecimal学习总结和工具类
  12. Core Mvc传值Query、Form、Cookies、Session、TempData、Cache
  13. python系统编程(二)
  14. Houdini技术体系 基础管线(一) : Houdini与Houdini Engine的安装
  15. 转:IIS 应用程序池 内存 自动回收
  16. BAI度 内部资料!Python_Threads多线程
  17. Bootstrap CustomBox 弹层
  18. Man&#39;s Best Friend: The Science Behind the Dog and Human Relationship
  19. AndroidManifest.xml文件详解(activity)(四)
  20. 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral,解决

热门文章

  1. Outlook关闭时最小化
  2. idea 2018.3.3版本激活到
  3. calico官网网络拓扑实现:基于eNSP与VMVare
  4. 【转载】windows linux cent 7 制作U盘 启动盘
  5. ubuntu中安装meld工具-(转自sukhoi27smk)
  6. kylin剪枝优化的两种方式
  7. Zabbix 5.0:磁盘读写监控
  8. java学习之旅
  9. 使用指定源安装python包
  10. Docker学习(13) Docker容器的网络连接