題目:一個臺階總共有n 級,如果一次可以跳1 級,也可以跳2 級。
求總共有多少總跳法,並分析算法的時間複雜度。
由題分析得出這是FIibonaqi的變形,有關遞歸與遞推的區別,查看數據結構面試NO.19題
#include<iostream>
#include<assert.h>
using namespace std;
int Recurrence(int num)
{
assert(num!=0);
int count=0;
int i;
int first = 1;
int sed = 2;
if(num==1 || num==2 )
{
return num;
}
for(i=3;i<=num;i++)
{
count = first + sed;
first = sed ;
sed = count;
}
return count;
}
int main()
{
int num;
num=Recurrence(5);
cout<<"the total number of functions is:"<<num<<endl;
return 1;
}