HDOJ杭电2044

思路:

1-2有一种路径,1-3有两种路径。看下图以5为例,到5之前必须经过3或4,所以1 - 5=1 -  3 +1 - 4,同理,1 - n = 1 -  (n-1)  + 1 -  (n-2)

所以递推公式就能找到了就是斐波那契数列。

注意b-a足够大时,数值会超过int的范围。

                                        

/*
* Copyright (c) 2017, 安徽大学计算机科学与技术学院
* All rights reserved.
* 作 者:  杨磊
* 完成日期:2017 年 01 月 12 日
*/
#include<cstdio>
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
#include<cmath>
#define maxn  55
double s[maxn];
using namespace std;
int main(){
    int i,t,m,n;
    s[1]=1;
    s[2]=2;
    for(i=3;i<=55;i++)
        s[i]=s[i-1]+s[i-2];
      scanf("%d",&t);
    while(t--){
      scanf("%d%d",&m,&n);
      printf("%.lf\n",s[n-m]);
     }
return 0;}


posted @ 2017-01-12 22:49  Super___Yang  阅读(383)  评论(0编辑  收藏  举报