/
triangle2.js
96 lines (61 loc) · 2.2 KB
/
triangle2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
*
* Adrian Statescu <mergesortv@gmail.com> <http://thinkphp.ro> <http://adrianstatescu.com>
* Display Pascal's Triangle.
* MIT License
*
*/
DOMhelp = {
addEvent: function(elem,evType,fn,useCapture){
if(elem.addEventListener) {
elem.addEventListener(evType,fn,useCapture);
} else if(elem.attachEvent) {
var r = elem.attachEvent('on'+evType,fn);
return r;
} else {
elem['on'+evType] = fn;
}
}
};
var solve = function() {
//step 1
//declarations of the vars
var PascalTriangle = [],
i,
j,
x,
y,
html = '',
$ = function(id){return document.getElementById(id);},
rows = parseInt($('input').value)
//step 2
//init Matrix Pascal's Triangle
for(i = 0; i <= rows; i++) {
PascalTriangle.push( [] )
for(j = 0; j <= rows; j++) {
PascalTriangle[ i ].push(0)
}
}
//step 3
PascalTriangle[ 0 ][ 0 ] = 1;
for(x = 1; x <= rows; ++x) {
for(y = 0; y <= x; ++y) {
if( 0 == y || x == y ) PascalTriangle[ x ][ y ] = 1
else
PascalTriangle[ x ][ y ] = PascalTriangle[ x - 1][ y - 1] + PascalTriangle[ x - 1 ][ y ]
}
}
//step 4 Display the Pascal's Triangle
for(x = 0; x <= rows; ++x) {
html += '<div class="row">'
for(y = 0; y <= x; ++y) {
html += '<div class="cell">' + PascalTriangle[ x ][ y ] + '</div>'
}
html += '</div>'
}
$('container').innerHTML = html;
}
var init = function() {
DOMhelp.addEvent(document.getElementById('solve'), 'click', solve, false);
};
DOMhelp.addEvent(window,'load',init,false);