1 条题解
-
0
自动搬运
来自洛谷,原作者为

Star_Universe
狂减发犇 | INFP-T | 称呼 SU | 代词使用他 | 愿此行,终抵群星 | 处女作 /article/wep12twg | 互关看心情,如果不想关注会用两小号回关,私信!搬运于
2025-08-24 22:56:11,当前版本为作者最后更新于2024-03-17 19:53:10,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目传送门
修改了思路里的一处笔误,望管理通过。
题意
就是让你求下 级台阶时有一次下一级,一次下两级,一次下三级这三种方式,一共多少种走法,且顺序不同也算两种哦!要注意。
递推思路
就是一个简单的递推题,当 时,那当然就是直接下一级台阶,当 时,可以直接下两级,也可以下两个一级,当 时,可以下三级,也可以先下一级再下两级,也可以先下两级后再下一级,也可以连续下三个一级,后面楼梯级数每增加一级方案数就是数组前三个元素的和,可得以下公式:
其实这个公式是很容易得到的,因为一次最多下三级楼梯,所以从上往下数第 级楼梯可以从上面三级中任意一级走过来,自然就可以得到是方案数是上面三级楼梯方案数的和。
递推代码
#include<bits/stdc++.h> using namespace std; long long a[1001]; int n; int main(){ cin>>n; a[0]=1; a[1]=2; a[2]=4; for(int j=3;j<n;j++){ a[j]=(a[j-1]+a[j-2]+a[j-3]); } cout<<a[n-1]<<endl; return 0; }
- 1
信息
- ID
- 9950
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者