我在尝试解决此问题时遇到了一些麻烦。下面的代码:
function pasc(n){
var result = [[1]];
for (var row = 1; row < n; row++){
for (var col = 1; col <= row; col++){
result[row][col] = result[row - 1][col] + result[row - 1][col - 1];
}
}
return result;
}
pasc(10)
for (var i = 0; i < result.length; i++){
document.write(result[i]+"<br>");
}
看来问题取决于使用像
myArray[1][1] = "foo"
这样的表达式将值分配给数组我对此感到困惑,因为我可以这样做:
var myArray = []; myArray[4] = "foo"
似乎暗示可以在1维数组中的任意位置创建元素,但不能在2维数组中创建。感谢您为消除我的误解提供的任何帮助。
最佳答案
可以使用递归来打印Pascal的三角形
以下是递归工作的代码段。
我们有一个递归函数pascalRecursive(n,a),直到打印出行数为止。每行都是二维数组的元素(在这种情况下为“a”)
var numRows = 10,
triangle,
start,
stop;
// N is the no. of rows/tiers
// a is the 2-D array consisting of the row content
function pascalRecursive(n, a) {
if (n < 2) return a;
var prevRow = a[a.length-1];
var curRow = [1];
for (var i = 1; i < prevRow.length; i++) {
curRow[i] = prevRow[i] + prevRow[i-1];
}
curRow.push(1);
a.push(curRow);
return pascalRecursive(n-1, a); // Call the function recursively
}
var triangle = pascalRecursive(numRows, [[1]]);
for(var i = 0; i < triangle.length; i++)
console.log(triangle[i]+"\n");
关于javascript - 如何用Java编程Pascal的Triangle-Confusion Re Arrays,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31023844/