我正在通过项目Euler,我遇到了一个组合问题.组合逻辑意味着计算阶乘.所以,我决定创建一个阶乘方法.然后我遇到了一个问题 - 因为我可以很容易地使用迭代和递归来做到这一点,我应该去哪一个?我快速写了2个方法 - 迭代:
public static long factorial(int num) {
long result = 1;
if(num == 0) {
return 1;
}
else {
for(int i = 2; i <= num; i++) {
result *= i;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
和递归:
public static long factorial(int num) {
if(num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我(显然)在这里谈论速度和功能,我应该使用哪一个?而且,一般来说,这种技术通常比其他技术更好(所以如果我以后遇到这个选择,我该怎么做)?
x我有一个带有和设置的SVG 元素y,但我还使用 ,通过某个向量翻译它transform="translate(a, b)",这会更改它渲染的坐标,但显然不会更新它的x和y属性。有没有办法获取实际坐标(在本例中为x + a和 )y + b,而不必直接从transform属性中解析值?
这并不是 D3 特定的问题,但我的代码如下所示:
svg.selectAll(selector)
.attr("x", x)
.attr("y", y)
.attr("width", width)
.attr("height", height)
.attr("transform", `translate(${a}, ${b})`);
Run Code Online (Sandbox Code Playgroud) 所以假设我创建了一个包含5个空格的数组,就像这样 - String[] myArray = new String[5].然后假设我定义了一些这些项,但是将其中的一些保留为null(或者任何Java术语用于未定义的数组项/变量),如下所示:
myArray[0] = "foo";
myArray[2] = "bar";
myArray[4] = "foobar";
Run Code Online (Sandbox Code Playgroud)
有没有办法可以"缩小"该数组,挤出所有空项(不改变它的大小)?因此"foo"的索引保持为0,但"bar"的索引变为1,"foobar"位于2,最后2个空格为空?长话短说 - 在数组中的项目周围进行随机播放,将所有空项目推送到最后,同时保持其他项目的相对顺序.是否已有预定义的Java方法,或者我需要自己制作?
假设我选择了一个元素$(mySelector).我想选择最接近它的标题,所以如果它最接近的标题元素是a <h2>,它会选择它,但如果最接近的是a <h3>,它会选择它.我怎样才能做到这一点?
我知道有一种方法可以使JS在chrome扩展中工作:只需在manifest.json中包含一个default_popup参数来指定一个HTML页面,然后将JS包含在HTML中<script>.但有没有办法让JS在不打开HTML页面的情况下做一些事情(例如更改扩展图标而不必打开HTML弹出窗口)?
可能重复:
C++中的增量 - 何时使用x ++或++ x?
我已经看过像循环中i++常用的东西for.但是当人们使用--而不是++出于某种原因,有些人倾向于写作--i而不是i--.
上次我检查时,它们都工作(至少在JavaScript中).谁能告诉我,如果是这样的话在其他C家族语言,如果是,为什么有些人喜欢--i来i--?
我有一个带有数字值的列的数据框。该列不是正态分布所近似的。给定另一个数值(不在此列中),如何计算其在该列中的百分位数?也就是说,如果该值大于该列中值的80%但小于其他20%,则该值将位于第20个百分点。
好的,所以我尝试使用addEventListener函数创建此页面,以解决按钮的单击问题; 它没用.我通过删除除了监听器所需的基本元素之外的所有内容来缩小它,并留下以下内容:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function init(){
document.getElementById("test").addEventListener("mousedown", function(){
alert("Test successful");
});
}
body.onload = init();
</script>
</head>
<body>
<button id="test">Click</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这也不起作用,所以我知道问题在于我的上述语法.请注意,当我带走body.onload = init();并onload="init()"转入身体标签时,它确实有效:O问题是,我不想让它内联.有什么建议?
注意:请记住,这个问题不是关于JS中是如何存在错误的,即使标题可能如此建议,也是因为我可能错误地解释了它是如何无法工作的.如果您愿意,请随时重命名.
如果类a扩展类b,类b扩展类c,a 是否继承自c和b?如果是这样,在 2 之间发生冲突的情况下,是否存在错误或是否覆盖了另一个(如果是,是哪个)?
如果标题不合适,请重命名问题。
编辑:我所说的冲突是这样的:
class c {
int foo;
//Stuff
}
class b extends c {
String foo;
//Stuff
}
class a extends b {
//Stuff
}
Run Code Online (Sandbox Code Playgroud)
是a.foo字符串还是整数?
另一个编辑:所以从我收集的信息来看,这里的继承有点像 CSS - 规则设置得越近,它的优先级就越大(例如内联样式覆盖样式表)。这是考虑这一点的好方法,还是明显不同?
我们的网站目前有一个组件,它是通过使用<a>带有“背景”图像的标签来实现的,该图像是通过使用设置的
a.class-name::after {\n content: url(\'image.png\');\n}\nRun Code Online (Sandbox Code Playgroud)\n\n标签本身没有内容(看起来像<a class="class-name" other-attrs></a>)。我遇到的问题是我们需要向此链接添加相当于替代文本的内容。由于锚标记不支持alt属性,我可以想到两个选项:
title标签的属性中。尽管title通常会被屏幕阅读器忽略,但我在这里读到“将读取标题属性的唯一非常微小的例外是如果\xe2\x80\x99s绝对没有链接锚文本,并且\xe2\x80\x99s很少见”。对于我们来说,这恰恰是如此,但我想与更有知识的人再次确认这是否真的有效。也许还有更好的第三种选择?无论如何,任何帮助将不胜感激!
\njavascript ×5
java ×4
html ×3
anchor ×1
arrays ×1
c++ ×1
class ×1
css ×1
d3.js ×1
distribution ×1
inheritance ×1
iteration ×1
jquery ×1
oop ×1
operators ×1
pandas ×1
python ×1
recursion ×1
statistics ×1
svg ×1