爬楼梯
下面是一个算法题:爬楼梯。
就是有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阶的了。好了,就说那么多。
想要算法的百度一下。一大堆。