使用javascript计算最近的礼物位置



我尝试了一个练习并检查了下面的要求。

你正在去找礼物的路上。所有的礼物都在你黄金时期的一条直线上 数字和你的房子在 0。 给定您当前的位置,找到最接近您位置的礼物,并计算距离 在你现在的位置和礼物之间,并告诉距离。 前任: 对于输入 0,输出为 2 对于数字 = 11,输出应为 0 对于 number = 2000000000,输出应为 11 对于 number = 1800000001,输出 应为 10

对于上述逻辑,我尝试使用 javascript,几乎我已经完成了,但我没有按照要求获得正确的输出,我的输出返回任何数字。

爪哇语

function isPrime(num) {
if (num <= 1) {
return false;
} else if (num <= 3) {
return true
} else if (num % 2 === 0 || num % 3 === 0) {
return false
}
let i = 5
while (i * i <= num) {
if (num % i === 0 || num % (i + 2) === 0) {
return false
}
i += 6
}
return true
}

.HTML

<h1> Gift House</h1>
<label for="name">Enter a house Number</label>
<input type="text" id="inp" class="clr" />
<input type="button" id="checker" value="Calculate" onClick="findpos()">
<label for="name"> Distance of the gift house</label>
<input type="text" id="demo" value="" class="clr">

我理解您的要求,您已经正确尝试了 2 个步骤,但在这两个步骤之前,您必须再做一个逻辑来计算素数。因为您在 JS 中isPrime调用了函数,但您在哪里定义了函数?

只需在JS代码中包含以下脚本并检查输出即可。

function findpos() {
var num = document.getElementById("inp").value;
var pos = 0;
while (true) {
if (isPrime(num)) {
break;
} else {
pos++;
num++;
}
}
document.getElementById("demo").value = pos;
}

isPrime函数在哪里? 如何在不定义函数的情况下调用。我认为这就是您问题的原因。

检查我下面的例子,

function findpos() {
var num = document.getElementById("inp").value;
var pos = 0;
while (true) {
if (isPrime(num)) {
break;
} else {
pos++;
num++;
}
}
document.getElementById("demo").value = pos;
}
function isPrime(num) {
if (num <= 1) {
return false;
} else if (num <= 3) {
return true
} else if (num % 2 === 0 || num % 3 === 0) {
return false
}
let i = 5
while (i * i <= num) {
if (num % i === 0 || num % (i + 2) === 0) {
return false
}
i += 6
}
return true
}

最新更新