From d2307ccb4e26f83c41e1d5c1517ae6297ba588a2 Mon Sep 17 00:00:00 2001 From: Abigail Date: Mon, 24 Jan 2022 15:45:55 +0100 Subject: Week 148, part 1: AWK solution --- challenge-149/abigail/awk/ch-1.awk | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 challenge-149/abigail/awk/ch-1.awk 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") +} -- cgit