分析
第一個台階 1
第二個台階 11 2 //走兩次1步或者走1次兩步
第三個台階 111 12 21 3
第四個台階 1111 112 121 211 22 13 31
思想:4階台階,第一次可以邁1步(還剩3台階也就是f(3)可能)或者2步(還剩2台階也就是f(2)可能)或者3步(還剩1台階也就是f(1)可能)
f(n)=f(n-1)+f(n-2)+f(n-3) 第n個台階的可能 = n-1台階的可能+n-2台階的可能+n-3台階的可能
我這里采用了遞歸算法
//param x 台階數目
int goadd(int x)
{
if (x == 1){
return 1;
}
else if (x == 2){
return 2;
}
else if (x == 3){
return 4;
}
else{
return goadd(x - 1) + goadd(x-2)+goadd(x-3);
}
}
void main()
{
printf("%d", goadd(5));
getchar();
}
轉自:http://www.cnblogs.com/nfcm/p/6368058.html
