2017-04-07 31 views
0

我正在嘗試編寫一個函數,它接受一個數字並將它的數字範圍總和爲冪次,但似乎我的函數並不正確地表示數組中的每個數字「n-thing」。Javascript:爲什麼我的數字沒有被提升到第n個權力並被推送到我的數組?

這裏是我的代碼:

function sumDigPow(a, b) { 
    var premArray = []; 
    var squaredArray = []; 
    for(var i = a; i <= b; i++){ 
    premArray.push(i); 

    } 
    for(var j = 0; j < premArray.length; j++){ 
     var squared = ('' + premArray[j]).split('').map(function(v, i){ 
     return Math.pow(parseInt(v), i + 1); 
     }).reduce(function(a , v){ 
      return a + v; 
     }, 0); 

     squaredArray.push(squared); 
    } 
} 

sumDigPow(5,22); 

回答

0

這將返回帶到連續權力

function sumDigPow(a, b) { 
    var squared = String(a).split('').map(function(v){ 
    return Math.pow(parseInt(v), b++); 
    }).reduce(function(a , v){ 
     return a + v; 
    }); 

    return squared; 
} 

sumDigPow的n個數字的總和(89,1)=> 89

sumDigPow(695,2)=> 1390

sumDigPow(46288,3)=> 2360688

0

你幾乎完成了複雜的事情。

function digPow(n, p){ 
    var total = 0; 
    var digits = (""+n).split(""); 

    for (var i = 0; i< digits.length; i++) { 
    total += Math.pow(digits[i], p+i); 
    } 

    if(total/n % 1 === 0){ 
    return total/n; 
    } 

    return -1; 
} 

這裏我們將第一個數字拆分爲數組。如果字符串是數字例子:「6」,請注意字符串次數可以產生數字。

所以我們只是分割它,遍歷並計算總的結果,之後我們檢查用起始號(n)除的結果是否是int,並且我們有簡單的解決方案。 希望它有幫助。

相關問題