//一次只能爬1或2個臺階
//n個臺階有多少個爬法?
//第一步,我們可能走1個臺階,那麼剩下的就剩下了 f(n-1)中方法,或者第一步走兩個臺階,那麼那麼剩下的就剩下了 f(n-2)種方法,所以f(n)共有 f(n-1)+ f(n-2)中方法
//在寫出邊界條件,n=1或者n=0,就一種結果
//這個和Fibonacci
//先考慮第一步,在考慮第二步,第二步可能與第一部的解法思路相同,(範圍卻小了),然後一直分解。。。直到邊界有返回值
#include<iostream>
using namespace std;
int kinds(int n)
{
if (n==1||n==0)//有多種邊界條件
{
return 1;
}
return kinds(n - 1) + kinds(n - 2);
}
int main()
{
int n;
cin >> n;
cout<<kinds(n)<<endl;
return 0;
}