Marconi25 2017-09-26 12:26 采纳率: 100%
浏览 953
已采纳

求问下面c++算法怎么理解?

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

int climbStairs(int n) {
int a = 1, b = 1;
while (n--)
{b=b+a;
a=b-a;//主要是这两句怎么理解?
}
return a;
}

谢谢

  • 写回答

2条回答 默认 最新

  • wanwan_1996 2017-09-27 03:12
    关注

    这不就是fn = f(n - 1) + f(n -2) 的形式吗?
    找规律就行啦,你多写几层的结果就会发现规律。
    硬要说是算法的话,可以往dp上靠一靠

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?