diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-01-24 15:45:55 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-01-24 15:45:55 +0100 |
| commit | d2307ccb4e26f83c41e1d5c1517ae6297ba588a2 (patch) | |
| tree | 0fc69255470314e13a3f83661b66833f67a01505 | |
| parent | 711d5679ff878c272bfd421116253630db330fc7 (diff) | |
| download | perlweeklychallenge-club-d2307ccb4e26f83c41e1d5c1517ae6297ba588a2.tar.gz perlweeklychallenge-club-d2307ccb4e26f83c41e1d5c1517ae6297ba588a2.tar.bz2 perlweeklychallenge-club-d2307ccb4e26f83c41e1d5c1517ae6297ba588a2.zip | |
Week 148, part 1: AWK solution
| -rw-r--r-- | challenge-149/abigail/awk/ch-1.awk | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/challenge-149/abigail/awk/ch-1.awk b/challenge-149/abigail/awk/ch-1.awk new file mode 100644 index 0000000000..392a9bd88a --- /dev/null +++ b/challenge-149/abigail/awk/ch-1.awk @@ -0,0 +1,41 @@ +#!/usr/bin/awk + +# +# See https://theweeklychallenge.org/blog/perl-weekly-challenge-149 +# + +# +# Run as: awk -f ch-1.awk < input-file +# + +function digit_sum (number, sum) { + sum = 0 + while (number > 0) { + sum += number % 10 + number = int (number / 10) + } + return sum +} + +{ + max_fib = 9 * (1 + length ($1)) + f = 0 + g = 1 + fib [f] = 1 + fib [g] = 1 + while (g < max_fib) { + t = f + g + fib [t] = 1 + f = g + g = t + } + + for (c = k = 0; c < $1; k ++) { + if (digit_sum(k) in fib) { + printf ("%d ", k) + c ++ + } + } + + printf ("\n") +} |
