题目:来源于洛谷
楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。

编一个程序,计算共有多少种不同的走法。

输入格式
一个数字,楼梯数。

输出格式
输出走的方式总数。

输入输出样例
输入 #1

4

输出 #1

5

分析:
用递归的思想超时了,如下

#include <iostream>
#include <cstdio>using namespace std;//数楼梯,不一定哦
long long Func(int n) {/*if (n==1||n==0) {return 1;}*///另一种写法if (n == 1) {return 1;}else if(n==2) {return 2;}else {return Func(n - 1) + Func(n - 2);}
}int main() {int n;scanf("%d", &n);printf("%lld", Func(n));return 0;
}

更简单的思路是递推,如下:

代码如下:

#include <iostream>
#include <cstdio>using namespace std;int main()
{   long long p = 0, q = 0, r = 1;for (int i = 0; i < n; ++i) {p = q;q = r;r = p + q;}printf("%lld", r);return 0;
}

这样虽然不会超时,但是还是会溢出,那怎么办呢?

我想到要用大整数的运算,也就是把每个数位上的数存到数组中

来看一下⑧:

#include <iostream>
#include <cstdio>
#include <cstring>using namespace std;struct bign {int d[2000];int len;bign() {memset(d, 0, sizeof(d));len = 0;}
};//加法
bign add(bign a, bign b) {bign c;int carry = 0;    //进位for (int i = 0; i < a.len || i < b.len; i++) {int temp = a.d[i] + b.d[i] + carry;c.d[c.len++] = temp % 10;carry = temp / 10;}if (carry) {c.d[c.len++] = carry;}return c;
}//打印
void print(bign a) {for (int i = a.len-1; i >= 0; i--) {printf("%d", a.d[i]);}
}int main() {bign p;bign q;bign r;p.d[p.len++] = 0;q.d[q.len++] = 0;  r.d[r.len++] = 1;int n;scanf("%d", &n);for (int i = 0; i < n; i++) {p = q;q = r;r = add(p,q);}print(r);return 0;
}

(●ˇ∀ˇ●)

洛谷刷题——P1255 数楼梯相关推荐

  1. 【洛谷题解】P1255 数楼梯

    题目概况 链接: https://www.luogu.com.cn/problem/P1255 难度: 普及- 题目分析 一道简单的 递推题 一次可以走一级或两级阶梯,(突然想起<少年班> ...

  2. 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质

    记录洛谷刷题QAQ,一些不大优雅的代码 一.[深基2.例7]数字反转 题目描述 输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4 ...

  3. 洛谷刷题C语言:Even? Odd? G、The Robot Plow G、pb的游戏(1)、询问学号、cover

    记录洛谷刷题QAQ 一.[USACO09OCT]Even? Odd? G 题目描述 Bessie's cruel second grade teacher has assigned a list of ...

  4. 洛谷刷题C语言:潇湘の雨、分糖果、Addition、Ljeto、TRI

    记录洛谷刷题C语言QAQ 「PMOI-0」潇湘の雨 题目背景 (原 LZOI-1,改名已经 PMOI 成员同意) lhm-01 题目描述 言琢დ 在一个 2n×2n2n \times 2n2n×2n ...

  5. 洛谷刷题C语言:Bold、饱食、公平の意、DOM、

    记录洛谷刷题C语言qaq [COCI2020-2021#6] Bold 题目描述 Paula 给 Daniel 写了一封信,她需要加粗文本的字体,以便视力恶化的 Daniel 阅读. 信可以用 . 和 ...

  6. 洛谷刷题C语言:FILIP、修改数组、Fun、Šifra、Erinnerung

    记录洛谷刷题QAQ [COCI2009-2010#3] FILIP 题目描述 给你两个十进制正整数 a,ba, ba,b,输出将这两个数翻转后的较大数. 「翻转」在本题中的定义详见「说明 / 提示」部 ...

  7. 洛谷刷题C语言:陶瓷项链、Cow Gymnastics B、Where Am I? B、Hello, 2020!、SIR 模型

    记录洛谷刷题C语言 一.[NOI2000] 瓷片项链 题目描述 原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷 ...

  8. 洛谷刷题C语言:PET、KEMIJA、PROSJEK、KORNISLAV、RESETO

    记录洛谷刷题QAQ 一.[COCI2008-2009#3] PET 题目描述 在一项受欢迎的比赛 Dinner for Five 中,有 555 名选手和 444 名裁判,这 444 个裁判会对每一道 ...

  9. 洛谷刷题C语言:切蛋糕、概率、Bridž、NOTE、DOMINO

    记录洛谷刷题C语言qaq [NOI Online 2021 入门组] 切蛋糕 题目描述 Alice.Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕. 三个人的需求量分别为 ...

最新文章

  1. 人工智能70年,研究者们最不愿意面对的惨痛教训是……
  2. 武汉首座无人驾驶电动汽车充电站投入使用
  3. python(19)编码问题
  4. c语言将一个已知头结点的单链表逆序_C语言数据结构实现链表逆序并输出
  5. 非阻塞connect的实现
  6. iOS上相见恨晚的6个APP
  7. SQL注入攻击再度肆虐殃及大量网站
  8. ruby html解析器
  9. SharePoint 2013 workflow cannot start automatically when you logged in site as a system account
  10. windows和linux删除文件方法
  11. 记一次phpstudy重启后Apache无法启动
  12. 在MyEclipse中更换或修改svn的用户名和密码
  13. jeecg集成积木报表错误_6688种玩法的电子积木,是什么体验?「中外玩具网测评」...
  14. B站升级HDR10真彩画质,开启4K+120帧+HDR创作新时代
  15. 人工与计算机解决问题的异同,1.1计算机解决问题的过程ppt课件 .ppt
  16. Acer e5-571g 完美黑苹果10.13
  17. 【实战应用】后端返回支付宝HTML,如何使用.H5端调用支付宝支付
  18. java中modifier_Ruby中的private modifier与Java中的对比
  19. word制作多个单位联合发文的文件头
  20. python和java哪个好就业-计算机专业选Java和Python哪个前景好点?

热门文章

  1. 我在赶集网的两个月 (完整版)
  2. 一年360天,初始水平值为1.0,以每个月30天计算,在每个月月初连续10天里,每工作一天水平增加N,不工作时水平不下降,该月其他时间工作与否都不增加水平值,
  3. [转]跨越千年的RSA算法
  4. Avaya G700 媒体网关
  5. 微信小程序的五种跳转方式
  6. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)
  7. 车联网的发展现状前景趋势及挑战
  8. 解析 Java 类和对象的初始化过程(zhuang张 国建 (guojian.zhang@gmail
  9. Paxos协议学习——译《The Part-Time Parliament》
  10. DUMN : Deep User Match Network for Click-Through Rate Prediction