这是一道简单的递推题目;
思路:同样这道题也是通过从后往前进行思考;假设我要到达14层楼梯,那么从第一层到达地14层的路线就是从第一层到达13层以及从第一层到达第12层所有路线的总和。
AC代码:
#include <iostream> #include <cstdio> #include <cstring> #define Max 42 using namespace std; int main(void) { freopen("in.txt","r",stdin); int N; long long int b[Max]; cin>>N; while(N--) { int n,i; cin>>n; memset(b,0,sizeof(b)); if(n>1) { b[1]=1; b[2]=1; for(i=3;i<=n;i++) b[i]=b[i-1]+b[i-2]; } cout<<b[n]<<endl; } fclose(stdin); return 0; }