题解 | N阶楼梯上楼问题
#include <bits/stdc++.h> using namespace std; const int N=100; int a[N]; int main(){ int n; memset(a,0,sizeof(a)); while(cin>>n){ a[1]=1; a[2]=2; for(int i=3;i<=n;i++){ if(i>n)break; a[i]=a[i-1]+a[i-2]; } cout<<a[n]<<endl; } }
动态规划问题,思路上和搜索和递归其实是一样的,本质上是一种暴力的搜索,搜索的 状态函数是a[i]=a[i-1]+a[i-2],就是根据前面的结果得到新的结果,就得到了上述代码,然后这题可以优化空间为o1#大学最后一个寒假,我想……#