假设一个楼梯有 N 阶台阶,人每次最多能够跨 M 阶。例如楼梯总共有3个台阶,人每次最多跨2个台阶,也就是说人每次能够走1个,也能够走2个,但最多不会超过2个,那么楼梯总共有这么几种走法:php
咱们这样看面试
1台阶楼梯走法为1,算法
2台阶楼梯走法为2,code
3台阶楼梯走法为3,ci
4台阶楼梯走法为5,io
5台阶楼梯走法为8,function
咱们能够得出规律,这实际上是一个斐波那契数列,就很容易解决了date
印象中有次面试被问到这个问题,因此在这里分享下分享
算法以下co
<?php /* * 2015/3/4 update * 1 2 3 5 8 13 */ function fibonacci($n) { if ($n == 1) { return 1; } if ($n == 2) { return 2; } return fibonacci($n - 1) + fibonacci($n - 2); } for ($index = 1; $index < 10; $index++) { echo fibonacci($index)."\n"; }