`
mybwu_com
  • 浏览: 192662 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

算法练习--小球下落

 
阅读更多
小球下落:
完全二叉树,最大深度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));


分享到:
评论

相关推荐

    Python解决抛小球问题 求小球下落经历的距离之和示例

    `totalDistance`方法是一个递归函数,用于计算单个小球下落并反弹的总距离。它接受两个参数:`total`表示当前累计的距离,`statDis`表示当前小球的高度。每次调用`totalDistance`,都将`statDis`减半,然后将两倍的`...

    C语言算法例题

    程序20:小球自由下落。这是物理和数学结合的问题,涉及到重力加速度和下落时间的计算。 程序22:两个乒乓球队进行比赛。可能涉及到数组和循环的使用来记录和计算比赛结果。 程序23:打印出如下图案(菱形)。这是...

    100个经典例题(C语言).doc

    #### 【程序20】小球自由下落 - **知识点**: - 物理公式 - 数学运算 - **描述**:根据自由落体的物理公式计算小球落地所需的时间。 #### 【程序22】两个乒乓球队进行比赛 - **知识点**: - 随机数生成 - 循环...

    C语言游戏,实现微信小游戏欢乐球球

    在这个游戏中,C语言被用来处理游戏逻辑,如小球的运动轨迹计算、挡板的旋转和碰撞检测等核心算法。 Easy_X插件则提供了图形绘制和用户交互的接口。例如,它可以帮助开发者创建游戏窗口、加载图像资源(如背景图片...

    Plinko-Pro-33

    这款游戏中,玩家通过控制一个小球下落的轨迹,尽可能地获得更高的分数。在这款看似简单的游戏中,蕴含着丰富的JavaScript技术应用,包括DOM操作、事件处理、动画效果以及用户交互设计等。接下来,我们将深入探讨...

    C语言编程题练习.pdf

    30. 小球落地问题,累加每次下落和反弹的高度,计算总长度和第10次反弹高度。 31. 输入答案校验,使用if条件判断答案是否正确。 32. 使用冒泡排序算法对数组进行排序,使用两层for循环实现。 33. 输出字符,根据...

    Java计算球从100米高度自由落下问题

    Java编程语言广泛应用于各个领域,包括解决物理问题的模拟计算。在这个特定的示例中,我们探讨的是如何用...对于学习Java的初学者来说,这是一个很好的练习,有助于理解和掌握循环控制、变量操作以及简单的物理概念。

    木板打球程序

    【标题】"木板打球程序"是一个基于VB(Visual Basic)开发的课程作业,主要涉及人机交互元素,用户可以通过鼠标操作控制一个“木板”来接住屏幕中下落的多个“小球”。该程序可能是一个简单的休闲游戏或者教学示例,...

    Visual C++开发实战1200例 第二章

    实例053小球下落 实例054再现乘法口诀表 实例055判断名次 2.5 循环的数学应用 实例056序列求和 实例057简单的级数运算 实例058求一个正整数的所有因子 实例059一元钱兑换方案 2.6 趣味计算 实例060加油站加油 实例...

    C程序范例宝典(基础代码详解)

    实例047 小球下落问题 58 实例048 灯塔数量 59 实例049 买苹果问题 60 实例050 猴子吃桃 61 实例051 老师分糖果 62 实例052 新同学的年龄 63 实例053 百钱百鸡问题 64 实例054 彩球问题 65 实例055...

    c语言经典案例

    实例037 小球下落问题 48 实例038 巧分苹果 49 实例039 老师分糖果 50 实例040 IP地址形式输出 51 实例041 特殊的完全平方数 52 实例042 一数三平方 54 实例043 求等差数列 55 实例044 亲密数 56 实例045 自守数 57 ...

Global site tag (gtag.js) - Google Analytics