数楼梯(斐波拉契数列+高精度加法)
来源:互联网 发布:有效工作时间 知乎 编辑:程序博客网 时间:2024/06/06 01:17
数楼梯
题目描述:
楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。
输入输出格式
输入格式:
一个数字,楼梯数。
输出格式:
走的方式几种。
输入输出样例
输入样例#1:
4
输出样例#1:
5
说明:
用递归会太慢,需用递推
(60% N<=50 ,100% N<=5000)
#include<iostream>#include<cstring>using namespace std;const int maxn=5010;int n;struct node{ int f[1050]; int len;}ans[maxn];node add(node a,node b){ node c;c.len=1; memset(c.f,0,sizeof(c.f)); int x=0; while(c.len<=a.len||c.len<=b.len) { c.f[c.len]=a.f[c.len]+b.f[c.len]+x; x=c.f[c.len]/10; c.f[c.len]=c.f[c.len]%10; c.len++; } c.f[c.len]=x; if(c.f[c.len]==0) c.len--; return c;}int main(){ cin>>n; ans[0].f[1]=0; ans[0].len=1; ans[1].f[1]=1; ans[1].len=1; ans[2].f[1]=2; ans[2].len=1; for(int i=3;i<=n;i++) ans[i]=add(ans[i-2],ans[i-1]); for(int i=ans[n].len;i>=1;i--) cout<<ans[n].f[i]; return 0;}
0 0
- 数楼梯(斐波拉契数列+高精度加法)
- 超级楼梯(斐波拉契数列)
- 高精度数算法 - - 加法
- 高精度——数楼梯
- 大数(高精度)加法
- 二进制(高精度加法)
- 高精度加法(c++)
- 高精度(加法)
- 【高精度计算 03】 大小数加法
- 用C++实现高精度数的加法
- 高精度整数加法(大整数加法)
- 蓝桥杯BASIC29 高精度加法(数组 高精度)
- 高精度计算(附高精度加法程序)
- HDOJ2041-超级楼梯(斐波拉契数列的应用)
- 高精度(大整数加法)
- poj_2506 Tiling(高精度加法)
- 蓝桥杯--高精度加法(vip)
- 高精度(乘法和加法)
- 序
- [LeetCode]--5. Longest Palindromic Substring
- Android之使用AIDL时的跨进程回调—Server回调Client
- Android TextView显示表情、标签、超链接
- 神奇的二进制
- 数楼梯(斐波拉契数列+高精度加法)
- SQL中char、varchar、nvarchar的区别
- 尚学堂Java视频精华集锦
- day03 创建自定义控件
- 深入理解Java:SimpleDateFormat安全的时间格式化
- 优化 SQL SELECT 语句性能的 6 个简单技巧
- JSP 连接数据库
- JDBC连接数据库小示例
- Javascript 责任链模式