特例:有N个台阶 一次只能走1个台阶或者2个台阶,请问有几种走法
int GetNum(int N)
{
if(N>2)
{
return GetNum(N-1)+GetNum(N-2);
}
else if(N==2)
return 2;
else if(N==1)
return 1;
else if(N==0)
return 0;
}
但由于递归太慢,所以用循环好些:
int GetNum1( int N)
{
if ( N<2)
return 1;
int v1=0, v2=1, cur =0;
for ( int ix = 1; ix <= N; ++ix ) {
cur = v1 + v2;
v1 = v2;
v2 = cur;
}
return cur;
}