【递推】洛谷 P1255 数楼梯
来源:互联网 发布:商业标书知乎 编辑:程序博客网 时间:2024/06/05 23:44
题目描述
楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。
输入输出格式
输入格式:
一个数字,楼梯数。
输出格式:
走的方式几种。
输入输出样例
输入样例#1:
4
输出样例#1:
5
说明
用递归会太慢,需用递推
(60% N<=50 ,100% N<=5000)
代码
#include<iostream>#include<cstring>using namespace std;int a[5000],b[5000],c[5000],d[5000];int add(int len){ int x=0; for(int i=1;i<=len;i++) { c[i]=a[i]+b[i]+x; x=c[i]/10; c[i]%=10; } len++; c[len]=x; if(c[len]==0)len--; return len;}void change(int len){ int lenn=len; for(int i=1;i<=len;i++)d[i]=c[i]; while(b[lenn]==0)lenn--; for(int i=1;i<=lenn;i++)a[i]=b[i]; for(int i=1;i<=len;i++)b[i]=d[i];}int main(){ memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); int n,lenc=1; cin>>n; a[1]=1; b[1]=2; if(n==0){cout<<'0';return 0;} else if(n==1){cout<<a[1];return 0;} else if(n==2){cout<<b[1];return 0;} else while(n>2) { lenc=add(lenc); change(lenc); n--; } for(int i=lenc;i>=1;i--)cout<<b[i]; return 0;}
0 0
- 【递推】洛谷 P1255 数楼梯
- 洛谷 P1255 数楼梯
- 洛谷 P1255 数楼梯
- 洛谷 P1255 数楼梯
- P1255 数楼梯
- 洛谷 p1255 数楼梯 标准的大数姿势
- 超级楼梯 递推
- 超级楼梯(递推算法)
- 递推G 爬楼梯
- 【洛谷 1255】 数楼梯
- HDOJ 2041 超级楼梯(递推)
- HUDJ 2041 超级楼梯 递推
- HDU 2041 超级楼梯【递推】
- HDU 2041 超级楼梯 递推
- HDU 2041--超级楼梯【递推】
- HDU 2041 超级楼梯(递推)
- hdu 2041 超级楼梯(递推)
- 2041超级楼梯(简单递推)
- Android 微信登录
- HDUOJ 1062 textreverse /c++
- slf4jlog maven 配置
- Vmware12下安装centos7,网卡无法识别问题处理
- 详解Java动态代理机制(二)----cglib实现动态代理
- 【递推】洛谷 P1255 数楼梯
- Xcode8常用快捷键
- sql插入语句返回自增主键
- linux下彻底删除硬盘的gpt分区
- 一个兼容IE7和Chrome的日期控件
- 国内好用的maven仓库
- 前端框架Aurelia
- 使用stringUtils判断字符串是否为空
- echarts中图例legend和坐标系grid实现左右布局