思路: 从起点开始,每一步可以分为两种情况,非别是第i+1点和i+2点。利用递归的思想就可以写出来。
b-a的值就代表从0点到b-a可能的路线!
错点:1.使用递归函数超时,
2.未看清题目要求,数组定义成30
3.忽略了数据的增长,应该使用long long int
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std ;
int main()
{
long long num[60];
int t;
int a,b;
num[0] = num[1] = 1;
for ( int i=2; i<60 ; i++ )
num[i] = num[i-1]+num[i-2];
cin>>t;
while ( t-- ) {
cin>>a>>b;
cout<<num[b-a]<<endl;
}
return 0;
}
本文介绍了一个经典的编程问题——爬楼梯问题,并提供了一种高效的解决方案。通过使用斐波那契数列,避免了递归带来的性能瓶颈,实现了快速计算不同步数到达指定楼层的方法。
1828

被折叠的 条评论
为什么被折叠?



