有一段楼梯有10级台阶,规定每一步只能跨一级或两级或三级,要登上第10级台阶有几种不同的走法?
思路:
0节楼梯: 1 (0)
1节楼梯: 1 (1)
2节楼梯: 2 (11、 2)
3节楼梯: 4 (111、 12、 21、 3)
抽象f(n)=f(n-3)+f(n-2)+f(n-1)递归法性能
static long dfib1(int n)
{
if (n < 1)
{ return 0; }
if (n == 1)
return 1;
if (n == 2)
return 2;
if (n == 3)
return 4;
return dfib1(n - 1) + dfib1(n - 2) + dfib1(n-3);
}