2014-03-02 155 views
0

我目前正在研究尋找低邊界和高邊界的問題。這兩個數字將定義要素因子的字段。我有代碼可以找到這些因素,但現在我需要執行外部循環來遍歷列表。我明白它需要做什麼,但是我在編碼本身遇到問題。 (顯然,你必須通過數字從低到高的列表)。任何幫助都會很棒。當我嘗試更新「num」變量時,我遇到了麻煩,該變量是下限,或者是當時的因素。JavaScript中的嵌套循環

function calculate(num){ 
    var int = 2;  
    var num = document.getElementById("num").value; 
    var high = document.getElementById("high").value; 
    var str = num + ": "; 


    if (num <= high){ 

    for (var i = 2; i <= num; i++){ 
     if(num % i == 0){ 
      str += i + ","; 

     } 
     num++; 
    } 
    document.getElementById("outputArea").innerHTML = str; 
    } 

} 

目前,它給我的只是少量的加因子輸出。所以,如果我輸入12,它說:

12:2,3,4,6,12

是的,我目前想獲得程序要經過包括低和高的因素,每個數每一個。最後,它將在textarea標籤中以多行顯示。

像這樣:

12:2,3,4,6,12, 13:1,13 等....

+0

代碼產生哪個結果,以及當前版本產生的結果是什麼?請提供示例輸入/輸出。 –

+1

@FelixKling - 我認爲它試圖解決P vs NP,你能爲我們解決嗎? – adeneo

+0

我想我只是不明白你想要用代碼做什麼。你是否想遍歷每一個從「低」到「高」的數字,並將它們中的每一個都計算在內?如果是的話,你想對結果做什麼?也許我錯過了一些非常明顯的東西...... –

回答

0

我猜你想要做的是這樣的:

var num = 12; 
var high = 15; 

var str = ''; 

while (num <= high) { 
    str += num + ": "; 
    for (var i = 1; i <= num; i++) { 
     if (num % i == 0) { 
      str += i + ","; 
     } 
    } 
    str += '\n'; 
    num++; 
    alert(str); 
} 

表示:

12: 1,2,3,4,6,12, 
13: 1,13, 
14: 1,2,7,14, 
15: 1,3,5,15, 

在主要迫在眉睫的問題你代碼是num ++的錯誤位置

一個更大的問題是我要弄清楚你認爲你會用這個algorythm來實現什麼,但那完全是另一個故事。

有關更多信息,您可能需要閱讀文章,如this one