- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我面临以下挑战性问题:
There are a circle of 100 baskets in a room; the baskets are numbered in sequence from 1 to 100 and each basket contains one apple. Eventually, the apple in basket 1 will be removed but the apple in basket 2 will be skipped. Then the apple in basket 3 will be removed. This will continue (moving around the circle, removing an apple from a basket, skipping the next) until only one apple in a basket remains. Write some code to determine in which basket the remaining apple is in.
我得出结论,篮子 100 将包含最后一个苹果,这是我的代码:
var allApples = [];
var apples = [];
var j = 0;
var max = 100;
var o ='';
while (j < max) {
o += ++j;
allApples.push(j);
}
var apples = allApples.filter(function(val) {
return 0 == val % 2;
});
while (apples.length > 1) {
for (i = 0; i < apples.length; i += 2) {
apples.splice(i, 1);
}
}
console.log(apples);
我的问题是:我这样做是否正确?我关心的是篮子“一圈”的描述。我不确定这与我如何编写解决方案完全相关。剩下的苹果所在的篮子是否会被跳过?
我希望有人能告诉我我的回答是正确的、部分正确的还是完全错误的。感谢您的帮助。
最佳答案
所以,...我对这个问题也很感兴趣 :)
我分解了上一个答案的输入/输出,揭示了一个非常简单的模式。
基本上,如果项目总数是 2 的幂,那么它将是最后一项。之后的附加项将使第二项成为最后一项。此后每增加一个项目,最后一个项目就会增加 2,直到您达到另一个可以被 2 的幂整除的项目计数。冲洗并重复。
仍然不是单行,但会比我之前的回答快得多。这不适用于 1 项。
var items = 100;
function greatestPowDivisor(n, p) {
var i = 1;
while(n - Math.pow(p, i) > 0) {
i++;
}
return Math.pow(p, (i - 1));
}
var d = greatestPowDivisor(items, 2)
var last_item = (items - d) * 2;
关于Javascript 挑战——最后一个苹果是哪个篮子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15795379/
我正在开发一个小型 JavaScript 应用程序,用户可以单击页面上的按钮并将其传递到他们的购物篮。我这样做的问题是我不确定在同一个函数中处理多个按钮。我不想为每个按钮写出不同的功能。 我正在尝试
我是一名优秀的程序员,十分优秀!