樓梯上有n階臺階,上樓時可以一步上1階,也可以一步上兩階,編寫演算法計算共有多少種不同的上樓梯的方法。
阿新 • • 發佈:2019-01-07
數學模型:此問題如果按照習慣,從前向後思考,也就是從第一階開始,考慮怎麼樣到第二階、第三節、第四階……則很難找到問題的規律;而反過來先思考“到第n階有哪幾種情況”,答案就簡單了,只有兩種情況;
(1) 從第n-1階到第n階
(2) 從第n-2階到第n階
此問題為斐波那契數列的應用。
#include <iostream>
using namespace std;
int fun(int n)
{
if (n>0)
{
if (1 == n)
{
return 1;
}
else if (2 == n)
{
return 2;
}
else
{
return fun(n-1) +fun(n-2);
}
}
else
return 0;
}
int main()
{
int n;
cin>>n;
cout<<fun(n)<<endl;
return 0;
}