在网上看到这个问题,有人给出了代码,用的是求Fibonacci数列前n项和的原理,代码如下:

int Fibonacci(int n)
{int result[3] = {1, 2};if (num < 2){return result[n];}return Fibonacci(n - 1) + Fibonacci(n - 2);
}

这个方法的确很妙,但是如果有三级台阶的话,代3进函数,那函数返回的是只有两种走法,可是三级台阶明明是应该有三种走法的分别为(1,1,1)(1,2)(2,1),难道题目的意思是规定(1,2)(2,1)都算同一种走法?

我把代码稍微改了一下,使得(1,2)(2,1)这样的走法都计算在内,代码如下:

int Fibonacci(int num){int result[3] = {0, 1, 2};if (num < 3){return result[num];}
return Fibonacci(num - 1) + Fibonacci(num - 2);}

这种递归的方法虽然在理论上可以解决这个问题,但是实际执行这个程序的时候,最多就能测试到30多,再往上就不行了,运算量太大了。

有50级台阶,每次走一阶或两阶,有多少种走法?相关推荐

  1. 请编写一个函数,计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和向下走,不能往左和往上走。

    请编写一个函数,计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和向下走,不能往左和往上走. 递归实现: # ...

  2. 有1000阶的台阶,一个人每次只能走一阶或两阶,用一个递归算法求出共有多少种走法。...

    [分析]这是一典型的排列组合问题, 但若用排列组合来分析则演变为纯数学问题,则无法用递归的方法来解决.能使用递归的方法的模型的规律是问题的解决方法与问题的规模无关,因此可以先从数字的规律入手: 假设共 ...

  3. N级台阶(比如100级),每次可走1步,2步,3步,求总共有多少种走法?

    算法题:N级台阶(比如100级),每次可走1步,2步,3步,求总共有多少种走法? 平常不怎么研究算法,直到一次面试后,面试官给我了一个算法题,因为平常没有去看过类似的东西,所以就做错了 根据上面的题目 ...

  4. N级台阶,一次上1级或2级或3级或M级,总共有多少种走法

    思路 先分析最简单的,也就是每次要不上1级,要么上2级. 这个问题需要反过来思考才能比较容易的找到规律.总共有N级台阶,因为每次要么上1级要么上2级,因此对于第N级台阶来说,它的前一步要么是在N-1级 ...

  5. 有N个台阶,一步可以走一梯或者两梯,请问有多少种走法

    有N个台阶,一步可以走一梯或者两梯,请问有多少种走法 最近面试,被问到了这个问题,由于没有看过算法这方面的题,自然这题就凉凉了 力扣题链接 https://leetcode-cn.com/proble ...

  6. 动态规划:机器人走n米有多少种走法问题

    最近算法实验中的一个题目,特此分享一下解法. 题目,算法思路,代码如下: /** 题目:* 一个机器人每步可以走 1 米.2 米或 3 米.* 编写一个动态规划算法,计算机器人走n 米,有多少种走法( ...

  7. 冬冬爬楼梯,一步可以1级,也可以爬2级、3级。冬冬很可爱,每到一处楼梯处,他都想知道直完这个楼梯有多少种走法。但由于有的时候楼梯级数太多,可能是个天文数字,很显然,对于还处于小学5年级的冬冬是不太现实

    冬冬爬楼梯,一步可以1级,也可以爬2级.3级.冬冬很可爱,每到一处楼梯处,他都想知道直完这个楼梯有多少种走法.但由于有的时候楼梯级数太多,可能是个天文数字,很显然,对于还处于小学5年级的冬冬是不太现实 ...

  8. 【C语言】20个阶梯,一次只能走1或2阶,有多少种走法

    [C语言]20个阶梯,一次只能走1或2阶,有多少种走法. /* 有20阶阶梯,一次只能上1或2阶阶梯,问有多少种走法的求解 *//* 分析:一阶阶梯的时候只有一种走法,两阶阶梯的时候有两种走法,三阶的 ...

  9. C语言题目地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m3),有多少种走法

    地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m>3),有多少种走法 要想到达m,则前一个应该是m - 1或者 ...

最新文章

  1. 达内——java变量
  2. su 和su -的区别
  3. 程序员的福音,AI可以自动修复bug了!
  4. 关于分布式事务、两阶段提交协议、三阶提交协议
  5. linux boost 64位编译,Boost在Linux 64 下的编译
  6. 【UOJ 92】有向图的强连通分量
  7. 【转】SharePoint 中的编程模型
  8. Wpf中通过绑定来更新textbox的值
  9. Silverlight 的文本框自动完成(AutoComplete)
  10. 【语音识别】基于matlab GUI BP神经网络0到10数字语音识别【含Matlab源码 672期】
  11. charset参数 sqluldr2_linux下配置 oracle数据导出工具sqluldr2
  12. 软件测试的四个阶段【单元测试、集成测试、系统测试、验证测试】
  13. linux文件系统-文件的写与读
  14. Google离开我们快十年了
  15. Facebook POP,迈向大师操作之路
  16. 由limits.h看整型范围
  17. toupper在c语言中是什么意思,C语言中toupper 是什么?
  18. R语言read.xlsx( )函数报错 LoadLibrary failure: %1 不是有效的 Win32 应用程序
  19. 【Linux学习笔记】线程同步 之 信号量 之 sem_t结构体
  20. c语言中的各种变量是如何存储的(-)

热门文章

  1. zf2 路由跳转方法
  2. 微信小程序-QQ音乐
  3. 嵌入式技术和物联网发展趋势
  4. 优化详情页怎么做|百誉纳成
  5. Java(if, else,else if)
  6. 公司注册资金要实缴吗
  7. “美版贴吧” 强制对 API 收费遭开发者反击:关闭第三方 App 开源代码、数千个子论坛改私有模式、直接搞崩官网!...
  8. 互联网那么大,推荐五个能够直接访问的高质量外媒网站
  9. CTA测试需要注意的几点
  10. python列表和链表的区别_顺序表和链表的区别