Skip to content

kbrammer/pascals-triangle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

pascals-triangle

A function to return n lines of Pascal's Triangle.

Usage

pascalsTriangle(numberOfRows): Return n lines of Pascal's Triangle as a multi-dimensional array.

let triangle = pascalsTriangle(5);
console.log(triangle);

[ [ 1 ],
  [ 1, 1 ],
  [ 1, 2, 1 ],
  [ 1, 3, 3, 1 ],
  [ 1, 4, 6, 4, 1 ],
  [ 1, 5, 10, 10, 5, 1 ] ]

printRightTriangle(triangle, numberOfSpaces, paddingCharacter): Format array as a right triangle with equally spaced columns.

let triangle = pascalsTriangle(10);
let str = printRightTriangle(triangle, 2, ' ');
console.log(str);

1
1    1
1    2    1
1    3    3    1
1    4    6    4    1
1    5    10   10   5    1
1    6    15   20   15   6    1
1    7    21   35   35   21   7    1
1    8    28   56   70   56   28   8    1
1    9    36   84   126  126  84   36   9    1
1    10   45   120  210  252  210  120  45   10   1

nChooseK(n,k): return the value from any place in Pascal's Triangle using combinations: n choose k( n = row, k = term ).

// log all values k for row 5
console.log(nChooseK(5,0));
1

console.log(nChooseK(5,1));
5

console.log(nChooseK(5,2));
10

console.log(nChooseK(5,3));
10

console.log(nChooseK(5,4));
5

console.log(nChooseK(5,5));
1

format(triangle, preRow, postRow, preColumn, postColumn): wraps individual elements and rows with provided values.

For example, to create an HTML table:

let triangle = pascalsTriangle(15);
// make all rows the same length, so they have the same number of columns
let nTriangle = normalizeRows(triangle,'');
let html = [];
html.push('<table>');
html.push('<tbody>');
html.push(format(nTriangle, '<tr>', '</tr>', '<td>', '</td>'));
html.push('</tbody>');
html.push('</table>');
console.log(html.join('\n'));
1
11
121
1331
14641
15101051
1615201561
172135352171
18285670562881
193684126126843691
1104512021025221012045101
1115516533046246233016555111
1126622049579292479249522066121
11378286715128717161716128771528678131
11491364100120023003343230032002100136491141
11510545513653003500564356435500530031365455105151

About

A function to return n lines of Pascal's Triangle

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published