2015-06-28 34 views
-2

我試圖編寫一個函數,該函數將數字(x)乘以給定數字(y)a一定次數(n)。結果將以數組形式返回。將數字(x)乘以給定數字(y)一定次數(n)的函數

function multiplyBy(x, y, n) { 
    var arr = [], 
     z = x * y, 
     sum = 0; 
    for (var i = 0; i < n; i++) { 
     sum += z; 
     arr.push(sum); 
    } 
    return arr; 
}; 

http://jsfiddle.net/marcusdei/s91pm82b/4/

+0

你在哪裏使用'N'? –

+0

你能舉一個你正在尋找的輸出的例子嗎?你能解釋爲什麼你使用數組,但沒有循環或遞歸? –

+0

你是什麼意思「多次」。你是否在談論n的力量? –

回答

1

這應該工作。

function multiplyBy(x, y, n) { 
    var arr = []; 
    var tot = x*y; 
    for (var i=0; i<n; i++){ 
     arr.push(tot); 
     tot *= y; 
    } 
    return arr; 
}; 

alert(multiplyBy(2,4,6)) 
+0

我不完全確定它是什麼意思,但OP規範要求「*結果要返回一個數組*」。 –

+0

謝謝,現在解決了。 –

+0

檢查這個版本:http://jsfiddle.net/marcusdei/s91pm82b/4/ – mdarmanin

0

你需要像this updated小提琴嗎?

更新2:

function multiplyBy(x, y, n) { 
    var arr = [], 
     z = x * y, 
     sum = 0; 

    arr[0] = x * y; 

    for (var i = 1; i < n; i++) { 
     sum = arr[i - 1] * y; 
     arr.push(sum); 
    } 
    return arr; 
}; 
+0

關閉,退房:http://jsfiddle.net/marcusdei/s91pm82b/4/ 而不是[8,16,24,32,40,48]我需要得到[8,16,24,32, 40,48] – mdarmanin

+1

這些不一樣嗎? [8,16,24,32,40,48]和[8,16,24,32,40,48]? –

+0

對不起,我的意思是我需要得到[8,32,128,512,2048,8192] – mdarmanin

0

至於你提到multiplyBy(2, 4, 6);和所需出來放是8,32,128,512,2048,8192

function multiplyBy(x, y, n) { 
 
    var arr = [], 
 
    var z = x * y; 
 
    for (var i = 0; i < n; i++) { 
 
     arr.push(z); 
 
     z *= y; 
 
    } 
 
    return arr; 
 
}; 
 
document.getElementById('choice').innerHTML = multiplyBy(2, 4, 6);
#hidden { 
 
    display:none 
 
}
<div id="choice"></div> 
 
<div id="hidden"></div>

0

這裏有一個更簡約的功能。

JS:

function multiply(op1, op2, n) { 
    for(var results = []; n > 0; results.push(op1 *= op2), n--); 
    return results; 
} 

console.log(multiply(2, 4, 6)); 
相關問題