【牛客网-剑指offer】变态跳台阶
2024-10-07 17:24:33
题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
考点:
递归和循环
分析:
台阶数 | 跳法 |
---|---|
1 | 1 |
2 | 2 |
3 | 4 |
4 | 8 |
5 | 16 |
6 | 32 |
7 | 64 |
8 | 128 |
... | ... |
归纳:f(n)=2*f(n-1);
代码实现:
function jumpFloorII(n)
{
// write code here
var fb = [1, 2];
for (var i = 2; i <= n; i++) {
fb.push(fb[i - 1]*2);
}
// console.log(fb[n])
return fb[n-1];
}
有大佬想到的另一种思路:
因为跳法1,2,4,8,16,32....即2^(n-1)
利用1左移来求数
左移位数 | 左移 | 结果 |
---|---|---|
1<<0 | 0000 0001 | 1 |
1<<1 | 0000 0010 | 2 |
1<<2 | 0000 0100 | 4 |
1<<3 | 0000 1000 | 8 |
1<<(--n) | ... | 2^(n-1) |
代码实现:
function Fibonacci(n) {
return 1<<(--n);
}
最新文章
- Python3 登陆网页并保持cookie
- linux系统内核流转浅析
- Samba快速配置
- 记STM32F030多通道ADC DMA读取乱序问题
- 【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例
- jQuery和JS原生方法对比
- 【javascript基础】3、变量和作用域
- sizeof 和 strlen 的区别
- Highcharts axja 获取json对象动态生成报表生成
- tachyon 集群容错
- c++ 虚继承与继承的差异 (转)
- WCF与WebService之间的异同
- forEach嵌套循环的问题
- 第一个Servlet程序及分析
- java udp socket(双通信)
- 一键git push脚本(python版)
- Centos 6.5配置rsync+inotify实现文件实时同步
- Spring-Data-Redis 下实现jedis连接断开后自动重连
- BZOJ3105:[CQOI2013]新Nim游戏(线性基,贪心)
- Linux下编译安装nginx并且监控
热门文章
- 【牛客网-剑指offer】矩形覆盖
- sqlalchemy防sql注入
- Linux将动态IP改为静态IP
- Linux系统入门---开机启动流程
- ida吧
- [FILE API]利用Javascript上传图片
- 【Flutter学习】事件处理与通知之事件处理
- TextView详解
- What is the difference between UserControl, WebControl, RenderedControl and CompositeControl?
- elementUI中input输入框,强制输入数字,并限制输入长度