aboutsummaryrefslogtreecommitdiff
path: root/challenge-003/abigail/node
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-01-28 13:01:50 +0100
committerAbigail <abigail@abigail.be>2021-01-28 13:01:50 +0100
commit62ad2b057e0439e47759711b6fc7dfcffcecf348 (patch)
treee0152c085ee823cbc905ce6e13a29eb27a99d8cd /challenge-003/abigail/node
parent50255b3d3d1cc4a5fdd4e57be0b369a8ec003f79 (diff)
downloadperlweeklychallenge-club-62ad2b057e0439e47759711b6fc7dfcffcecf348.tar.gz
perlweeklychallenge-club-62ad2b057e0439e47759711b6fc7dfcffcecf348.tar.bz2
perlweeklychallenge-club-62ad2b057e0439e47759711b6fc7dfcffcecf348.zip
Node.js solution for week 3, part 2
Diffstat (limited to 'challenge-003/abigail/node')
-rw-r--r--challenge-003/abigail/node/ch-2.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/challenge-003/abigail/node/ch-2.js b/challenge-003/abigail/node/ch-2.js
new file mode 100644
index 0000000000..ab629fcb86
--- /dev/null
+++ b/challenge-003/abigail/node/ch-2.js
@@ -0,0 +1,43 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-1.js < input-file
+//
+
+require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', _ => triangle (+_))
+;
+
+
+function triangle (rows) {
+ //
+ // Create and print the 0th row
+ //
+ let row = [1]
+ process . stdout . write ("1\n")
+ for (let r = 1; r <= rows; r ++) {
+ //
+ // Calculate a new row
+ //
+ let new_row = []
+ for (i = 0; i <= r; i ++) {
+ new_row [i] = (i == 0 ? 0 : row [i - 1]) +
+ (i == r ? 0 : row [i]);
+ if (i > 0) {
+ process . stdout . write (" ")
+ }
+ process . stdout . write ("" + new_row [i])
+ }
+ process . stdout . write ("\n")
+
+ //
+ // New row becomes current row
+ //
+ row = new_row
+ }
+}