[蓝桥杯] 第39级台阶

[蓝桥杯] 第39级台阶

    小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!

    站在台阶前,他突然又想着一个问题:

    如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?


    请你利用计算机的优势,帮助小明寻找答案。

要求提交的是一个整数。

【题解】

数据比较水,可以用DP做,而且不用考虑优化空间的问题,用二维数组模拟一下就好了。

【代码 C++】

 1 #include<cstdio>
 2 int w[2][50];
 3 int main(){
 4     int i, j;
 5     w[1][0] = 1;
 6     for (i = 0; i < 39; ++i){
 7         if (w[0][i]) w[1][i + 2] += w[0][i], w[1][i + 1] += w[0][i];
 8         if (w[1][i]) w[0][i + 2] += w[1][i], w[0][i + 1] += w[1][i];
 9     }
10     printf("%d", w[1][39]);
11     return 0;
12 }
原文地址:https://www.cnblogs.com/Simon-X/p/5302566.html