簡體   English   中英

我正在嘗試將數字提高到其連續的功效,而我的代碼不起作用

[英]I'm trying to raise numbers to their consecutive powers and my code isn't working

https://codepen.io/aholston/pen/ZJbrjd

codepen鏈接已注釋了代碼以及HTML中的實際說明

否則......我最終要做的是編寫一個函數,該函數接受兩個參數(a和b),並接受這兩個參數之間的所有數字(ab),然后將可以加到連續fower上的每個數字放入等於那個數字到一個新的數組。 例如:89 = 8 ^ 1 + 9 ^ 2 = 89或135 = 1 ^ 1 + 3 ^ 2 + 5 ^ 3 = 135

function sumDigPow(a, b) {
    // Your code here
    var numbers = [];
    var checkNum = [];
    var finalNum = [];
    var total = 0;
    for (var i = 1; i <= b; i++) {
        if (i >= a && i <= b) {
            numbers.push(i);
        }
    }

    for (var x = 0; x < numbers.length; x++) {
        var checkNum = numbers[x].toString().split('');
        if (checkNum.length == 1) {
            var together = parseInt(checkNum);
            finalNum.push(together);
        } else if (checkNum.length > 1) {
            var together = checkNum.join('');
            var togNumber = parseInt(together);

            for (var y = checkNum.length; y > 0; y--) {
                total += Math.pow(checkNum[y - 1], y);
            }
            if (total == togNumber) {
                finalNum.push(togNumber);
            }

        }
    }
    return finalNum;
}

嘗試這個:

function listnum(a, b) {
  var finalNum = [];
  for (var i = a; i <= b; i++) {
    var x = i;
    var y = i;
    var tot = 0;
    j = i.toString().length;
    while (y) {
      tot += Math.pow((y%10), j--);
      y = Math.floor(y/10);
    }
    if (tot == x)
    finalNum.push(i);
  }
  return finalNum;
}
console.log(listnum(1, 200));

好的,調試之后,這就是我學到的東西。

          for (var y = checkNum.length; y > 0; y--) {
            total += Math.pow(checkNum[y - 1], y);
        }
        if (total == togNumber) {
            finalNum.push(togNumber);
        }

    }
}
return finalNum;

}

每次發生此循環時,我都忽略了將“總計”變量重置為0。因此,對於我的Math.pow(),我從來沒有得到正確的答案,因為我的答案總是與之前的total值相加。 為了解決這個問題,我添加了var total = 0; 在我決定是否將“ togNumber”推入“ finalNum”之后。 所以我的代碼看起來像這樣。

for (var y = checkNum.length; y > 0; y--) {
total += Math.pow(checkNum[y - 1], y);


}
if (total == togNumber) { 


finalNum.push(togNumber);}

}
  var total = 0;
}
return finalNum;

 }

暫無
暫無

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

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