aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-26 17:06:27 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-26 17:06:27 +0100
commita792983ae44331d447e963414fd84768416fb2ce (patch)
tree634010ace5295b1b2820348aa30dce654964bc9a
parenta678bf9e5c29c258c31e906b2b9dd911b919b1ac (diff)
downloadperlweeklychallenge-club-a792983ae44331d447e963414fd84768416fb2ce.tar.gz
perlweeklychallenge-club-a792983ae44331d447e963414fd84768416fb2ce.tar.bz2
perlweeklychallenge-club-a792983ae44331d447e963414fd84768416fb2ce.zip
Week 149, part 1: Fix variable names.
-rw-r--r--challenge-149/abigail/awk/ch-1.awk18
-rw-r--r--challenge-149/abigail/bash/ch-1.sh18
-rw-r--r--challenge-149/abigail/bc/ch-1.bc14
-rw-r--r--challenge-149/abigail/perl/ch-1.pl17
4 files changed, 32 insertions, 35 deletions
diff --git a/challenge-149/abigail/awk/ch-1.awk b/challenge-149/abigail/awk/ch-1.awk
index db6182ff4f..1faa7da576 100644
--- a/challenge-149/abigail/awk/ch-1.awk
+++ b/challenge-149/abigail/awk/ch-1.awk
@@ -18,20 +18,20 @@ function digit_sum (number, sum) {
}
function is_fib (n, t) {
- while (g < n) {
- t = g
- g = f + g
- f = t
- fib [g] = 1
+ while (fib_last < n) {
+ t = fib_last
+ fib_last = fib_prev + fib_last
+ fib_prev = t
+ fib [fib_last] = 1
}
return n in fib
}
BEGIN {
- f = 0
- g = 1
- fib [f] = 1
- fib [g] = 1
+ fib_prev = 0
+ fib_last = 1
+ fib [fib_prev] = 1
+ fib [fib_last] = 1
}
{
diff --git a/challenge-149/abigail/bash/ch-1.sh b/challenge-149/abigail/bash/ch-1.sh
index bd882f735b..9e87e4f844 100644
--- a/challenge-149/abigail/bash/ch-1.sh
+++ b/challenge-149/abigail/bash/ch-1.sh
@@ -17,19 +17,19 @@ function digit_sum () {
done
}
-f=0
-g=1
+fib_prev=0
+fib_last=1
declare -A fib
-fib[$f]=1
-fib[$g]=1
+fib[$fib_prev]=1
+fib[$fib_last]=1
function is_fib () {
local n=$1
- while (($g < $n))
- do ((t = g))
- ((g = f + g))
- ((f = t))
- fib[$g]=1
+ while (($fib_last < $n))
+ do ((t = fib_last))
+ ((fib_last = fib_prev + fib_last))
+ ((fib_prev = t))
+ fib[$fib_last]=1
done
is_fib=${fib[$n]:-0}
}
diff --git a/challenge-149/abigail/bc/ch-1.bc b/challenge-149/abigail/bc/ch-1.bc
index 85f46b7a03..84e3b12665 100644
--- a/challenge-149/abigail/bc/ch-1.bc
+++ b/challenge-149/abigail/bc/ch-1.bc
@@ -18,19 +18,19 @@ define digit_sum (n) {
return (sum)
}
-f = 1
-g = 1
+fib_prev = 1
+fib_last = 1
fib [0] = 0
fib [1] = 1
fib_count = 2
define is_fib (n) {
auto t, min, max
- while (g < n) {
- t = g
- g = f + g
- f = t
- fib [fib_count] = g
+ while (fib_last < n) {
+ t = fib_last
+ fib_last = fib_prev + fib_last
+ fib_prev = t
+ fib [fib_count] = fib_last
fib_count = fib_count + 1
}
min = 0
diff --git a/challenge-149/abigail/perl/ch-1.pl b/challenge-149/abigail/perl/ch-1.pl
index 0f4127cb8a..7188924edf 100644
--- a/challenge-149/abigail/perl/ch-1.pl
+++ b/challenge-149/abigail/perl/ch-1.pl
@@ -51,22 +51,19 @@ sub digitsum ($number) {
# Then it's a simple lookup.
#
sub is_fib ($n) {
- state $fib = {0 => 1, 1 => 1};
- state $f = 0;
- state $g = 1;
- while ($g < $n) {
- ($f, $g) = ($g, $f + $g);
- $$fib {$g} = 1;
+ state $fib = {0 => 1, 1 => 1};
+ state $fib_prev = 0;
+ state $fib_last = 1;
+ while ($fib_last < $n) {
+ ($fib_prev, $fib_last) = ($fib_last, $fib_prev + $fib_last);
+ $$fib {$fib_last} = 1;
}
$$fib {$n}
}
while (<>) {
for (my ($k, $N) = (0, 0 + $_); $N > 0; $k ++) {
- if (is_fib (digitsum $k)) {
- print "$k ";
- $N --;
- }
+ $N --, print "$k " if is_fib digitsum $k
}
print "\n";
}