![请添加图片描述](https://img-blog.csdnimg.cn/c36ca42a222246e598114ff800237089.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6LiP6L-H5bGx5rKz77yM6LiP6L-H5rW3,size_18,color_FFFFFF,t_70,g_se,x_16)
举个例子
一阶楼梯:只能0到1
二阶楼梯:
0—>1—>2
0—>2
三阶楼梯:
0—>1—>2—>3
0—>2—>3
四阶楼梯:
0—>1—>2—>3—>4
0—>1—>2—>4
0—>2—>3—>4
0—>2—>4
观察规律:
0级楼梯:0种走法
1级楼梯:1种走法
2级楼梯:2种走法
3级楼梯:2种走法
4级楼梯:4种走法
所以,
n为奇,f(n)=f(n-1)
n为偶,f(n)=f(n-1)+f(n-2)
long long num(int n) {
if (n <= 0) return 0;
if (n == 1) return 1;
if (n == 2) return 2;
vector<long long>v;
v.push_back(0);
v.push_back(1);
v.push_back(2);
long long sum = 0;
for (int i = 3; i <= n; i++) {
if (i % 2 == 0)
v.push_back(v[i - 1] + v[i - 2]);
else
v.push_back(v[i - 1]);
}
return v[n];
}