爬楼梯

下面是一个算法题:爬楼梯。

就是有N个阶到达楼顶,你一次能走1个或者2个,有几种办法可以到达楼顶。

N是一个正整数。

这个题百度一下大一堆。

有的人直接就给出计算方式。

N=1 1

N=2 2

N>2   (N-1)要的方式+(N-2)要的方式和。使用递归算法。

---------------------------------

下面不说解法,说下怎么理解。因为刚看到这个时,想了半天。为什么会是这样的一个方式。后来一想,确实就是这样的。智商低没办法.....。

首先直接从3阶说起。再增加一阶。这个时候。你有3阶的3种方式上到3阶(废话),你只要再多一步,就能上到4阶了。所以从3阶你有3阶种办法上到4阶。因为可以走2个的。所以你还有从2阶走2个的办法上到4阶。也就是2阶的2个办法。你也只有这两种办法上分别从3阶和2阶到4阶呀。所以就是第三个公式了。

同理可以往5阶,6阶,7阶的推。

说到这里,如果说一次能走1个2个3个呢。你要怎么解法。理解了上面说的。就是(N-1)  + (N-2) +  (N+3)了。这里的NY就要>3才成立了

有人说2阶的时候可以+1+1到4阶呀。。其实这里2阶+1就与3阶的重复了。算是3阶的了。好了,就说那么多。

 

想要算法的百度一下。一大堆。

 

posted @ 2022-01-13 23:04  你好啊,再见了  阅读(130)  评论(0编辑  收藏  举报