1. 程式人生 > > C++實現爬樓梯問題

C++實現爬樓梯問題

大三下了,找不到實習,很憂桑

爬樓梯嘍!!

問題描述:

爬樓梯問題,每次可以走1步或者2步,爬上n層樓梯的總方法。

找規律吧~

1個臺階:1步——1種方法

2個臺階:2步,1步+1步——2種方法

3個臺階:1+1+1,1+2,2+1——3種方法

4個臺階:1+1+1+1,1+1+2,1+2+1,2+2,2+1+1——5種方法

…………

找到規律,其實就是斐波拉契數列

×××———————————————————————————————————————————————————————————————————————————

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)————來自百度百科

×××———————————————————————————————————————————————————————————————————————————

介於關係F(n)=F(n-1)+F(n-2),我們來用遞迴吧~⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

c++程式碼:

#include <iostream>
using namespace std;


int ff(int n)//遞迴函式在此
{
if(n==1||n==0)//F(0)=1,F(1)=1,因為這樣ff(2)才會返回2呢,規律規律~
return 1;
else
return ff(n-2)+ff(n-1);//遞迴了
}




void main()
{
int n;
cin>>n;  //輸入幾個臺階呢
cout<<ff(n)<<endl;


}