aboutsummaryrefslogtreecommitdiff
path: root/challenge-112/abigail/bash/ch-2.sh
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-112/abigail/bash/ch-2.sh')
-rw-r--r--challenge-112/abigail/bash/ch-2.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-112/abigail/bash/ch-2.sh b/challenge-112/abigail/bash/ch-2.sh
new file mode 100644
index 0000000000..17f2d49b9b
--- /dev/null
+++ b/challenge-112/abigail/bash/ch-2.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+#
+# See ../README.md
+#
+
+#
+# Run as: bash ch-2.sh < input-file
+#
+
+declare -A cache
+cache[0]=1
+cache[1]=1
+
+function fib () {
+ local n=$1
+ if [[ -z ${cache[$n]} ]]
+ then fib $((n - 1))
+ cache[$n]=$result
+ fib $((n - 2))
+ cache[$n]=$((cache[$n] + result))
+ fi
+ result=${cache[$n]}
+}
+
+while read n
+do fib $n
+ echo $result
+done