#include #include using namespace std; const int MAX=91; long long dp[MAX]; int main(){ dp[0]=0; dp[1]=1; dp[2]=2; for(int i=3;i<MAX;++i){ dp[i]=dp[i-1]+dp[i-2]; } int n; while(scanf("%d",&n)!=EOF){ printf("%lld\n",dp[n]); } return 0; } //这是一个动态规划的问题,只需要考虑最后一步的不同(分为最后走一节台阶和最后走两节台阶),然后思考n-1,n-2,n-3.......倒着思考即可

京公网安备 11010502036488号