首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

N阶楼梯,一次走1个台阶或者2个台阶,共有多少种走法?

假设你需要走n 阶楼梯才能到达楼顶,走楼梯的方式两种,一次走1个台阶或者一次走2个台阶,问多少种不同的方法可以走完这n阶楼梯?...先穷举几个n值分析下: n=1,共1种; {1} n=2,共2种; {1,1},{2} n=3,共3种 {1,2}, {1,1,1},{2,1} n=4,共5种 {1,1,2},{2,2}, {1,2,1...} 可以看到,除了n=1和n=2两种情况,是固定的走法外; 走n台阶时,可以在n-2个台阶的基础上一次走2个台阶,也可以在n-1个台阶的基础上走1个台阶;也就是f(n)=f(n-1)+f(n-2),这个公式就是著名的斐波那契数列...,却不是算法上最优的.明显在计算n时,会计算两次n-2,时间复杂度是O(n^n),效率相当低的算法了....简单分析下: 容易得出如下结论: f(1) =1 f(2)=1 f(n)=f(n-1)+f(n-2) 在看一下称为黄金分割数列的原因,随着n趋向于无穷大,f(n)/f(n+1)的值越趋近于0.618.

3.9K21
您找到你想要的搜索结果了吗?
是的
没有找到

【蓝桥OJ—C语言】高斯日记、马虎的算式、第39台阶

文章目录 高斯日记 马虎的算式 第39台阶 总结 ---- 高斯日记 题目: 大数学家高斯个好习惯:无论如何都要记日记。...} } } } } } } } } printf("%d",cnt); return 0; } 结果: 第39台阶...题目: 小明刚刚看完电影《第 39 台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是 39 !...站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上 1 个或 2 个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完 39 台阶多少种不同的上法呢?...(int n,int step) { if(n <0) { return; } if(n == 0 && step%2 ==0) { ans++; return; } way(n-

52120

JS滑动滚动的n种方式

JS滑动滚动的n种方式 # 阅读本文,你将: 了解原生JS实现页面滚动的多种方式 了解这多种方式可以对应上的效果以及推荐的应用场景 多个滑动方面的坑以及相应(如果有)的解决方案 获得一些有用的函数...1.3 浏览器的支持度 1.4 示例与推荐使用场景 原始位置图 我们定位如图红框的元素,从顶部开始示例 1.4.1 scrollIntoVIew() 页面滑动至父容器,但是子项并没有被滑动到可视区域...该元素从下方进入可视区域 1.4.3 scrollIntoView({block:"center",inline:"center"}) 仍然是没有看到我们要呈现的元素,疑似原因为我们的选定元素的爷爷元素才是可滑动的...出现父容器滑动不到指定地方的问题,可以两次调用api(注意异步) 2 设置scrollTop/scrollLeft 2.1 基本用法 element.scrollTop=100; 当我们获取到一个元素

5.9K10

N1软路由保姆教程(二)

N1启动了,是它原装系统,我们现在要给N1安装另一个系统,openwrt。...恩山无线论坛很多大佬的固件,我们选一个新的就行,找不到固件的可以从这里拿(https://vwo50.club/index.php/archives/99/)。...5.N1长这样, 等烧录完成后。我们把U盘插到N1的USB口上。重启电源。(此处图里没有插U盘) 哎,很神奇,发现N1启动的还是内置系统,所以呢,我们想让N1从U盘启动。...必须先让N1改成U盘启动才行。 此时我们需要用ADB命令连接到N1(必须保证我们和N1在一个局域网哦),输入 adb connect N1的IP 。 然后输入 adb reboot update 。...电脑和N1连1个局域网,电脑上用软件将系统刷到U盘里。 然后执行N1降级脚本,然后执行N1设置U盘启动脚本 。 最后N1断电,插上U盘,重新启动就OK了。

1.5K30

一文搞懂递归、备忘录、动态规划

走楼梯问题:一个楼梯共有10台阶,一个人从下往上走,他可以一次走一个台阶,也可以一次走两个台阶。请问这个人多少种走法走完这10台阶?...因为这个人一次可以走一个台阶,也可以走两个台阶,所以他可以很多种组合方法走完这10台阶。...也就是先上两台阶,再一步一个台阶地上8个台阶。 这样看来,这个人可以很多种方式走完这10个台阶,那么我们要如何计算共有多少种走法呢?...假设这个人登到第8台阶(第1种情形)的走法x种,登到第9台阶(第2种情形)的走法y种,很显然,此人登上10台阶的走法共有x+y种。...想听世界上最懂JS的人和你讲JS吗? 如何进行可视化大屏视觉设计?

39520

推送跳转到N界面 返回那些事

234.gif 场景N.02 ==> 假如APP 退到后台是在B界面(以A界面为rootVC)点击推送直接跳转到C界面,然后C点击返回返回到B界面,B再返回A界面。 ?...345.gif 场景N.03 ==> 假如APP 退到后台是在C界面(以A界面为rootVC)点击推送直接跳转到C界面,然后C点击返回返回到B界面,B再返回A界面。 ?...我的做法如下 在三界面C控制器的返回事件中这样做 - (void)backButtonAction { UINavigationController *navigationController...:[BViewController class]]) { canAddBVC = NO; } } //TODO: 添加B 控制器到第二...popToViewController:navigationController.viewControllers[1] animated:YES]; } 我不知道这样操作栈中元素会不会不合适 所以发出来供大家参考一下,大神好的见解还请赐教

51850

SQL优化之LIMIT语法, limit n,m 和 limit n什么区别?

在某些面试题中会遇到这样的问答或笔试题:“limit 0,1 和 limit 1什么区别?” 要准确回答这个问题就等深入明白limit一个参数和两个参数的本质区别。...limit n,m 中的第一次参数n表示的游标的偏移量,初始值为0,第二个参数m表示的是想要获取多少条数据。所以limit 0,1表示的是从第一条记录开始,只取一条即可。...我们首先来说一说 limit n,m是怎么回事,首先它要获取到第一个参数游标n的位置,那么它就必须得扫描到n的位置,接着从此位置起往后取m条数据,不足m条的返回实际的数量。...LIMIT n 又是什么? 上面已经说过limit0,1等价与limit 1,那他们到底啥区别呢?...但此方法对索引的列无效,也就是说如果NAME这一列加了索引,执行以上两条sql语句效率是一样的。

11.2K30

【自然框架】n下拉列表框的原理

首先要设置记录集,这里用DataSet来装载,二联动,里面就要有两个DataTable;三联动,里面就要有三个DataTable。同理,n级联动就要有n个DataTable。   ...就是这样:lst = new MyDropDownList();这样呢,做一个循环,n就new出来n-1个。...然后客户端的js就可以访问到需要的数据了。   下面说一下客户端。客户端是通过js的onchange函数实现联动,原理呢就是“递归”。...这样不管有多少个下拉列表框,都可以用这两个js函数搞定。   ...注意点:   1、由于用的是服务器控件DropDownList,他一个“特点”,那就是在客户端用js设置的item,在服务器端都是不承认的。

3.6K70
领券