#javascript #pascals-triangle
#javascript #паскаль-треугольник
Вопрос:
Я пытаюсь создать треугольник Паскаля на JavaScript, но есть много ошибок. Я знаю, почему происходят ошибки, но они есть.
Код:
function triangle() {
this.rows = [[1]];
this.genRow = function() {
this.rows.push([]);
this.rows[this.rows.length-1].push(1);
for (var i = 0; i < this.rows[this.rows.length-1].length; i ){
var u = [this.rows[this.rows.length-1][i-1], this.rows[this.rows.length-1][i], this.rows[this.rows.length-1][i 1]];
var f = function(e) {
return e != undefined;
};
function s() {
var sum=0;
for (var index = 0; i < this.legnth; i ){
sum = this[i];
}
return sum;
}
u = u.filter(f).s();
this.rows[this.rows.length-1].push(u);
}
this.rows[this.rows.length-1].push(1);
}
}
var t = new triangle();
t.genRow();
console.log(t.rows);
Спасибо.
Ответ №1:
Пожалуйста, попробуйте этот код, чтобы треугольник Паскаля пошел не так
#include <stdio.h>
int binomialCoeff(int n, int k);
void printPascal(int n)
{
for (int line = 0; line < n; line )
{
for (int i = 0; i <= line; i )
printf("%d ",
binomialCoeff(line, i));
printf("n");
}
}
int binomialCoeff(int n, int k)
{
int res = 1;
if (k > n - k)
k = n - k;
for (int i = 0; i < k; i)
{
res *= (n - i);
res /= (i 1);
}
return res;
}
int main()
{
int n = 7;
printPascal(n);
return 0;
}
Я надеюсь, что этот код будет полезен.
Спасибо.
Ответ №2:
const pascalsTriangle = (rows = 1) => {
let res = [];
for (let i = 1; i <= rows; i ) {
if (i == 1) {
res.push([1]);
}
else if (i == 2) {
res.push([1, 1]);
}
else {
let arr = [1];
let lastArr = res[i - 2];
for (let index=0; index<lastArr.length-1; index ) {
arr.push(lastArr[index] lastArr[index 1]);
}
arr.push(1);
res.push(arr);
}
}
return res;
};
Это будет работать отлично. Вы можете сослаться на это здесь . https://github.com/omkarsk98/Exercism/blob/master/javascript/pascals-triangle/pascals-triangle.js
Ответ №3:
Вот подход в JS.
function getNextLevel(previous) {
const current = [1];
for (let i = 1; i < previous.length; i ) {
current.push(previous[i] previous[i - 1]);
}
current.push(1);
return current;
}
function pascalTriangle(levels = 1) {
let currentRow = [1];
while (levels--) {
console.log(currentRow.join(" "));
currentRow = getNextLevel(currentRow);
}
}
pascalTriangle(10);