簡體   English   中英

使用JavaScript計算最近的禮物位置

[英]Calculate closest gift position using javascript

我嘗試了一種做法,並檢查了以下要求。

您正在尋找禮物的途中。 所有禮物都在直線上以質數直線位於您的路徑上,並且房屋位於0。給定當前位置,找到與您的位置最近的禮物,並計算當前位置和禮物之間的距離並告訴距離。 例如:對於輸入0,輸出為2對於數字= 11,輸出應為0對於數字= 2000000000,輸出應為11對於數字= 1800000001,輸出應為10

對於上述邏輯,我嘗試使用javascript並幾乎已經完成,但是根據要求我沒有得到正確的輸出,我的輸出返回任何數字。

Java腳本

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM