一只小蜜蜂..
.这一题也是斐波那契数列的变形,但有些 抽象。。。。。。。差点被搞晕
先逆向思考,可以发现每一个数字有两个进出途径,且构成了N=N-1 + N-2的关系,则可以认为关系与斐波那契数列有关。
但是这题并不是从一出发,而是任意两个数字之间 ,例题中给的一个数据为 3->6,可以发现3->6与1->4等价。
因此任意两个数字之间都可以转换成1与任一数字间的关系。
1->2=1 1->3=2 1->4=3 1->5=5.......
2-1=1 3-1=2 4-1=3 5-1=4........
f(1)=1 f(2)=2 f(3)=3 f(4)=5
即括号中的数字并不代表蜂房序号,而是目的地与出发点的差值。
Problem Description
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
其中,蜂房的结构如下所示。
Input
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。
Output
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
Sample Input
2 1 2 3 6
Sample Output
13#include <stdio.h> int main() { int n,a,b; int i; long long A[50]; A[1]=1; A[2]=2; for(i=3;i<51;i++) A[i]=A[i-1]+A[i-2]; scanf("%d",&n); while(n--) { scanf("%d%d",&a,&b); printf("%lld\n",A[b-a]); } return 0; }