当前位置: 首页 > news >正文

算法练习--小球下落

小球下落: 
完全二叉树,最大深度D。所有节点从上到下从左到右编号为1,2,3...2的D次方-1.在节点1处放一个小球,它会往下落。每个内节点上都由一个开关,初始全部关闭,当每次有小球落到一个开关上时,它的状态都会改变。当小球达到一个内节点时,如果该节点上的开关关闭,往左走,否则往右走,直到遍历到叶子节点。
问题,输入 深度和小球个数
输出节点编号


输入 4 2  输出 12
输入 3 4  输出 7


参考实现


function f(depth,count){


var states = new Array();
var r;


for(var i = 0;i < count;i++){
for(var root = 1;root <Math.pow(2,depth-1);){
if(states[root] && states[root].open){
states[root].open = false;


root = root * 2 + 1;
}
else{
if(!states[root]){states[root]={open:true};}
else if(states[root].open == false){states[root].open = true;}


root = root * 2;


}


r=root;
}


}


return r;
}


console.log(f(4,2));
console.log(f(3,4));
console.log(f(10,1));
console.log(f(2,2));
console.log(f(8,128));
console.log(f(16,12345));


相关文章:

  • 在LINQ to SQL中处理“更新已被其它用户删除对象”的错误
  • 算法练习--打印Cantor 数表
  • 企业中的4种人才
  • Sun的启示------技术在企业发展中的分量
  • Computer Science 学习第四章--CPU 指令集及指令处理
  • 领域模型驱动应用心得....
  • 算法练习--除法
  • 移动互联网 3G时代的“新宠”
  • 算法练习--双基回文数
  • C# 格式化显示金额函数
  • [Web开发] IE8的User-Agent 字符串
  • 算法练习--素数环
  • 算法练习--判断连续相同字符串
  • [IE编程] IE8的SDK 下载
  • JS 数组扩展函数--求起始项到终止项和
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • CentOS7简单部署NFS
  • conda常用的命令
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Facebook AccountKit 接入的坑点
  • Js基础知识(四) - js运行原理与机制
  • Koa2 之文件上传下载
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • spring + angular 实现导出excel
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从setTimeout-setInterval看JS线程
  • 高程读书笔记 第六章 面向对象程序设计
  • 前端_面试
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何进阶一名有竞争力的程序员?
  • 少走弯路,给Java 1~5 年程序员的建议
  • 数据可视化之 Sankey 桑基图的实现
  • 新版博客前端前瞻
  • 学习ES6 变量的解构赋值
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​虚拟化系列介绍(十)
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #{} 和 ${}区别
  • #14vue3生成表单并跳转到外部地址的方式
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (007)XHTML文档之标题——h1~h6
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • .aanva
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net打印*三角形
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [Android]使用Git将项目提交到GitHub