有一段楼梯台阶有15级台阶,以小明的脚力一步最多只能跨3级,请问小明登上这段楼梯有多少种不同的走法?()
2345
3261
5768
6843
推出来前几个,公式基本上就出来了,推的时候注意点,别介搞错了就好。
f[1] = 1;
f[2] = 2;
f[3] = 4;
f[4] = 7;
f[7] = 13;
到这里,基本上可以确定公式了
f[i] = f[i - 1] + f[i - 2] + f[i - 3] (i >= 4)
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
int f[22] = {0, 1, 2, 4};
int main()
{
for (int i = 4;i <= 15;i ++)
{
f[i] = f[i - 1] + f[i - 2] + f[i - 3];
}
cout << f[15] << endl;
return 0;
}