NYOJ 超级台阶
2016-02-28 21:51
211 查看
超级台阶
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?
注:规定从一级到一级有0种走法。
输入
输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数。
输出
对于每个测试实例,请输出不同走法的数量。
样例输入
2
2
3
样例输出
1
2
从1到m的种数与从m到1的种数是一样的,dp[m]表示从m走到1的种数,已知从m往回走可以走一步或两步,则dp[m]=dp[m-1]+dp[m-2];即答案就是斐波那契数列;
dp[1]=1;dp[2]=1;但要记得处理细节, 即先判断,当m==1时,要输出0, 而不是1;
AC代码:
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?
注:规定从一级到一级有0种走法。
输入
输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数。
输出
对于每个测试实例,请输出不同走法的数量。
样例输入
2
2
3
样例输出
1
2
从1到m的种数与从m到1的种数是一样的,dp[m]表示从m走到1的种数,已知从m往回走可以走一步或两步,则dp[m]=dp[m-1]+dp[m-2];即答案就是斐波那契数列;
dp[1]=1;dp[2]=1;但要记得处理细节, 即先判断,当m==1时,要输出0, 而不是1;
AC代码:
# include <iostream> using namespace std; long long int dp[50]; int main(){ int n, t, i, j, k; cin>>t; dp[1]=1; dp[2]=1; for(i=1; i<=t; i++){ cin>>n; if(n==1){ cout<<0<<"\n"; continue; } for(j=3; j<=n; j++){ dp[j]=dp[j-1]+dp[j-2]; } cout<<dp <<"\n"; } return 0; }
相关文章推荐
- UITableview代理方法与Viewcontroller分离
- 如何配置可在vxsim虚拟机上运行的windml demo
- Web 开发后端缓存思路
- 3-1-栈的顺序存储结构-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- 数据挖掘之标准流程
- js封装对象——prototype的使用
- 链表的各种操作
- 劝君惜取少年时-2015总结
- 一个pid的简单实现
- 广州楼盘抓取分析-分析问题
- Android绘图
- 关于(About)程序信息(Menu功能菜单程序设计)
- PAT 1006. 换个格式输出整数 (15);JAVA;Python实现
- 从今天开始
- localStorage本地存储的用法
- Serverlet
- 优雅的linq润滑在复杂的业务环境中(上)
- POJ 1611 The Suspects(并查集)
- 第三百三十二天 how can I 坚持
- 应邀ITGeGe在线教育社区嵌入式基础开发讲师