From 0b59fc36f4c1f832e41978cbab29475af95ffb10 Mon Sep 17 00:00:00 2001 From: Abigail Date: Tue, 26 Oct 2021 18:27:30 +0200 Subject: Bash solution for week 136, part 2 --- challenge-136/abigail/README.md | 1 + challenge-136/abigail/bash/ch-2.sh | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 challenge-136/abigail/bash/ch-2.sh diff --git a/challenge-136/abigail/README.md b/challenge-136/abigail/README.md index 3989f056f3..ea2555503a 100644 --- a/challenge-136/abigail/README.md +++ b/challenge-136/abigail/README.md @@ -19,6 +19,7 @@ ## Part 2 * [AWK](awk/ch-2.awk) +* [Bash](bash/ch-1.sh) * [Bc](bc/ch-2.bc) * [C](c/ch-2.c) * [Go](go/ch-2.go) diff --git a/challenge-136/abigail/bash/ch-2.sh b/challenge-136/abigail/bash/ch-2.sh new file mode 100644 index 0000000000..1a291d7d18 --- /dev/null +++ b/challenge-136/abigail/bash/ch-2.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# +# See ../README.md +# + +# +# Run as: bash ch-2.sh < input-file +# + +set -f + +function count () { + local target=$1 + local this_fib=${2:-1} + local prev_fib=${3:-1} + + if ((target < this_fib)) + then count=0 + elif ((target == this_fib)) + then count=1 + else count $((target - this_fib)) $((this_fib + prev_fib)) $this_fib + local sum=$count + count $target $((this_fib + prev_fib)) $this_fib + count=$((count + sum)) + fi +} + +while read target +do count $target + echo $count +done -- cgit