acm 3 1011 有只小蜜蜂

来源:互联网 发布:linux配置ant 编辑:程序博客网 时间:2024/05/04 06:07

1.1011

2.

一只小蜜蜂...
Problem Description
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。

其中,蜂房的结构如下所示。

杭电ACM <wbr>2044 <wbr>一只小蜜蜂 <wbr>递推类


Input
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。
Output
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
Sample Input
2 1 2 3 6
Sample Output
1 3

 

3.中文题意不多解释呵呵,有只小蜜蜂呀

4.递推斐波那契数列,分析的递推数列

斐波那契数列,观察到每个蜂房都和与它标号相邻的前两个标号蜂房相邻,既是x-1号和x-2号,于是猜测这是斐波拉数列的应用,根据猜测继续分析得到递推公式 NUM(a to b) = NUM(b - 1) + NUM(b-2);以a为端点,直到a停止。
唯一需要注意的地方就是数据问题了,由于数据比较大,直接用int要产生溢出所以改用__int64 (aron-游戏的博客)

5.#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{
    long long int a,T,n,m,i,j,temp,k,b;
    long long int map[60];
    map[0]=1;
    map[1]=1;
    for(i=2;i<55;i++)
        map[i]=map[i-1]+map[i-2];
    cin>>T;
    while(T--)
    {
        scanf("%d%d",&a,&b);
        //cout<<a<<b<<endl;
        cout<<map[b-a]<<endl;
    }
    return 0;
}

0 0