aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-02-09 18:27:40 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-02-09 20:14:51 +0100
commit495c230a90bd20dac94816da117ecbb16c2c20e8 (patch)
treeb89ff4861455bebe9cab534efc38ac6bb68d35b5
parente3eba65516c158f90c3a1a77e50daa2e569ed615 (diff)
downloadperlweeklychallenge-club-495c230a90bd20dac94816da117ecbb16c2c20e8.tar.gz
perlweeklychallenge-club-495c230a90bd20dac94816da117ecbb16c2c20e8.tar.bz2
perlweeklychallenge-club-495c230a90bd20dac94816da117ecbb16c2c20e8.zip
Week 151: bc solution for part 2
-rw-r--r--challenge-151/abigail/README.md1
-rw-r--r--challenge-151/abigail/bc/ch-2.bc37
-rw-r--r--challenge-151/abigail/t/ctest.ini3
3 files changed, 41 insertions, 0 deletions
diff --git a/challenge-151/abigail/README.md b/challenge-151/abigail/README.md
index 96d5223161..0d3e8807d3 100644
--- a/challenge-151/abigail/README.md
+++ b/challenge-151/abigail/README.md
@@ -16,6 +16,7 @@
* [AWK](awk/ch-2.awk)
* [Bash](bash/ch-2.sh)
+* [bc](bc/ch-2.bc)
* [C](c/ch-2.c)
* [Go](go/ch-2.go)
* [Java](java/ch-2.java)
diff --git a/challenge-151/abigail/bc/ch-2.bc b/challenge-151/abigail/bc/ch-2.bc
new file mode 100644
index 0000000000..d4f479a047
--- /dev/null
+++ b/challenge-151/abigail/bc/ch-2.bc
@@ -0,0 +1,37 @@
+#!/usr/bin/bc
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-151
+#
+
+#
+# Run as: bc ch-2.bc < input-file
+#
+# End each line of input with a 0
+# End input with a -1
+
+while (1) {
+ n = read ()
+ if (n < 0) {
+ break
+ }
+ sz = 0
+ while (n > 0) {
+ h [sz] = n
+ sz = sz + 1
+ n = read ()
+ }
+ h [sz + 0] = 0
+ h [sz + 1] = 0
+ for (i = sz - i; i >= 2; i --) {
+ if (h [i] + h [i + 2] > h [i + 1]) {
+ h [i] = h [i] + h [i + 2]
+ } else {
+ h [i] = h [i + 1]
+ }
+ }
+ h [0] + h [2]
+}
+
+
+halt
diff --git a/challenge-151/abigail/t/ctest.ini b/challenge-151/abigail/t/ctest.ini
index 0a8cb97d18..f2021a0482 100644
--- a/challenge-151/abigail/t/ctest.ini
+++ b/challenge-151/abigail/t/ctest.ini
@@ -7,3 +7,6 @@
1-1 = Given Examples
2-1 = Given Examples
+[2-1/bc]
+add_to_line = 0
+add_to_input = -1