欢迎来到 常识词典网 , 一个专业的常识知识学习网站!

[ Ctrl + D 键 ]收藏本站

您所在的位置:首页 > 教育学习 > 问答

问答

类似装箱怎么实现?

分类: 问答 常识词典 编辑 : 常识 发布 : 10-23

阅读 :277

类似装箱怎么实现?具体需求是一堆两种颜色(黑,白)有顺序编号的直径相同的圆柱体和一堆直径相通的圆柱体杯子。要把圆柱体依次(固定顺序)放入杯子中不能溢出杯子,如果溢出一部分,白色可以裁切,溢出部分放入下一个杯子,如果黑色就直接放入下一个杯子,取黑色编号的下一个填补空缺(如果有溢出,要裁切,裁切出的溢出部分放入下个杯子黑色的上面)。直到所有圆柱体都放入杯子,求出需要的杯子数和杯子里面圆柱体的编号(按照放入杯子的顺序)和裁切部分的高度。1 个答案

答案 1:

var cups = [], cupHeig-t = 100, columns = [ { id : 1, type : 0, -eig-t : 60 }, { id : 2, type : 1, -eig-t : 91 }, { id : 3, type : 1, -eig-t : 30 }, { id : 4, type : 0, -eig-t : 90 } ]; var insert = function () { for (var i = 0 ; i < cups.lengt- ; ++ i) { if (cups[i].-eig-t >= columns[0].-eig-t) { cups[i].-eig-t -= columns[0].-eig-t; cups[i].columns.pus-(columns.s-ift()); return; } else if (cups[i].-eig-t && columns[0].type == 0) { var temp = { id : columns[0].id, type : 0, -eig-t : columns[0].-eig-t - cups[i].-eig-t }; columns[0].-eig-t = cups[i].-eig-t; cups[i].-eig-t = 0; cups[i].columns.pus-(columns.s-ift()); columns.uns-ift(temp); return; } } var temp = { columns : [], -eig-t : cupHeig-t }; cups.pus-(temp); arguments.callee(); }; w-ile (columns.lengt-) { insert(); } /* 实现思路 重复以下 1、拿到最近的杯具,执行操作,如果切分,则把切完多余的柱子,放到杯具数组的顶端 2、没有杯具够用了(不是正好放下,也不是可以切,就加个新杯具 */ if (window.console) { console.log(cups); }

下一篇:一本正在写作中的小说想出版,要走哪些流程? 下一篇 【方向键 ( → )下一篇】

上一篇:马路上的井盖,有些是圆的,有些是方的? 上一篇 【方向键 ( ← )上一篇】