爬楼梯 (大数加法)
时间:2019-08-31
本文章向大家介绍爬楼梯 (大数加法),主要包括爬楼梯 (大数加法)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
时间限制:1秒
空间限制:65536K
在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。
请问计算出你可以采用多少种不同的方式爬完这个楼梯。
请问计算出你可以采用多少种不同的方式爬完这个楼梯。
输入描述:
一个正整数n(n<=100),表示这个楼梯一共有多少阶
输出描述:
一个正整数,表示有多少种不同的方式爬完这个楼梯
输入例子1:
5
输出例子1:
8
思路:大数相加。long long也溢出。
1 #include <iostream> 2 #include <vector> 3 #include <string> 4 using namespace std; 5 string add(string s1, string s2) { 6 int len1 = s1.length(), len2 = s2.length(); 7 int maxlen = max(len1, len2) + 1; 8 string res(maxlen, '0'); 9 int flag = 0; 10 int i = len1 - 1, j = len2 - 1, k = maxlen - 1; 11 for (; i >= 0 && j >= 0; i--, j--) { 12 int temp = (s1[i] - '0') + (s2[j] - '0') + flag; 13 flag = temp / 10; 14 res[k--]= temp % 10 + '0'; 15 } 16 while (i >= 0) { 17 int temp = s1[i--] - '0' + flag; 18 flag = temp / 10; 19 res[k--] = temp % 10 + '0'; 20 } 21 while (j >= 0) { 22 int temp = s2[j--] - '0' + flag; 23 flag = temp / 10; 24 res[k--] = temp % 10 + '0'; 25 } 26 res[k] = flag + '0'; 27 if (flag) { 28 return res; 29 } else { 30 return res.substr(1); 31 } 32 } 33 string jumpFloor(int number) { 34 vector<string> dp(number + 1, "1"); 35 for (int i = 2; i <= number; i++) { 36 dp[i] = add(dp[i - 1], dp[i - 2]); 37 } 38 return dp[number]; 39 } 40 41 int main() { 42 int n; 43 cin >> n; 44 cout << jumpFloor(n) << endl; 45 }
原文地址:https://www.cnblogs.com/qinduanyinghua/p/11440864.html
- zepto 基础知识(4)
- Intro.js:网站功能操作分布引导插件(附中文独家使用教程)
- [C#1] 6-方法
- 如何删除WordPress 的“多站点”模式(multisite)?
- 部分Sonos及Bose扬声器爆安全漏洞,被黑客入侵后发出特定音频
- TCP - WAIT状态及其对繁忙的服务器的影响
- 在Windows 7/Server 2008 R2上部署asp.net 1.1程序
- CSS Auto Reload:解放F5 键,自动刷新浏览器的前端利器(Chrome 扩展)
- zepto 基础知识(3)
- 1.[Andriod]之Andriod布局 VS WinPhone布局
- WordPress自定义url 中的“author” 别名
- ASP.NET 4 AppFabric 输出缓存提供程序
- WordPress 中禁止编辑“已发布”的文章
- Windows Server 2008 R2 网络负载平衡 (NLB)资料汇总
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php+ajax 文件上传代码实例
- PHP将整数数字转换为罗马数字实例分享
- PHP如何通过表单直接提交大文件详解
- PHP基于openssl实现的非对称加密操作示例
- python图片验证码识别最新模块muggle_ocr的示例代码
- virtualenv介绍及简明教程
- Keras 数据增强ImageDataGenerator多输入多输出实例
- TensorFlow中如何确定张量的形状实例
- 使用Dajngo 通过代码添加xadmin用户和权限(组)
- python和js交互调用的方法
- Python中flatten( ),matrix.A用法说明
- python中id函数运行方式
- CentOS 7如何实现定时执行python脚本
- PHP自动生成缩略图函数的源码示例
- 解决tensorflow 释放图,删除变量问题