假設一個樓梯有 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"; }