diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-16 18:54:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-16 18:54:58 +0100 |
| commit | 069032ae5b53aae9cccbcb23f03b1fa99c682e8e (patch) | |
| tree | ad09d7fa0198ef0daa8b9a24d0adbb99b568a4b3 /challenge-112 | |
| parent | 9a58753f25dda814dbf383f5f14a8bd4f5749f20 (diff) | |
| parent | aaf1f99c4be7c95696ff9abb75b639d442e3061e (diff) | |
| download | perlweeklychallenge-club-069032ae5b53aae9cccbcb23f03b1fa99c682e8e.tar.gz perlweeklychallenge-club-069032ae5b53aae9cccbcb23f03b1fa99c682e8e.tar.bz2 perlweeklychallenge-club-069032ae5b53aae9cccbcb23f03b1fa99c682e8e.zip | |
Merge pull request #4087 from Abigail/abigail/week-112
Abigail/week 112
Diffstat (limited to 'challenge-112')
| -rw-r--r-- | challenge-112/abigail/README.md | 5 | ||||
| -rw-r--r-- | challenge-112/abigail/awk/ch-1.awk | 2 | ||||
| -rw-r--r-- | challenge-112/abigail/befunge-93/ch-2.bf93 | 3 | ||||
| -rw-r--r-- | challenge-112/abigail/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-112/abigail/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-112/abigail/java/ch-2.java | 24 | ||||
| -rw-r--r-- | challenge-112/abigail/perl/ch-1.pl | 34 | ||||
| -rw-r--r-- | challenge-112/abigail/r/ch-2.r | 20 |
8 files changed, 68 insertions, 22 deletions
diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index aba06c6afa..4a8667ee09 100644 --- a/challenge-112/abigail/README.md +++ b/challenge-112/abigail/README.md @@ -43,6 +43,7 @@ Output: "/a" * [Ruby](ruby/ch-1.rb) ### Blog +[Perl Weekly Challenge 112: Canonical Path](https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-112-1.html) ## [Climb Stairs](https://perlweeklychallenge.org/blog/perl-weekly-challenge-112/#TASK2) @@ -58,14 +59,18 @@ This is just finding the `$n + 1` Fibonacci number. ### Solutions * [AWK](awk/ch-2.awk) * [Bash](bash/ch-2.sh) +* [Befunge-93](befunge-93/ch-2.bf93) * [C](c/ch-2.c) * [Go](go/ch-2.go) +* [Java](java/ch-2.java) * [Lua](lua/ch-2.lua) * [Node.js](node/ch-2.js) * [Perl](perl/ch-2.pl) * [Pascal](pascal/ch-2.p) * [Python](python/ch-2.py) +* [R](r/ch-2.r) * [Ruby](ruby/ch-2.rb) * [Scheme](scheme/ch-2.scm) ### Blog +[Perl Weekly Challenge 112: Climb Stairs](https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-112-2.html) diff --git a/challenge-112/abigail/awk/ch-1.awk b/challenge-112/abigail/awk/ch-1.awk index 5de385b451..fde01cf5de 100644 --- a/challenge-112/abigail/awk/ch-1.awk +++ b/challenge-112/abigail/awk/ch-1.awk @@ -9,7 +9,7 @@ # BEGIN { - FS="/" # So we split into directory parts + FS = "/" # So we split into directory parts } { diff --git a/challenge-112/abigail/befunge-93/ch-2.bf93 b/challenge-112/abigail/befunge-93/ch-2.bf93 new file mode 100644 index 0000000000..15af811bf7 --- /dev/null +++ b/challenge-112/abigail/befunge-93/ch-2.bf93 @@ -0,0 +1,3 @@ +> & :1+!#@_ 111p112p > :!#v_ 12g:11g+12p11p :1- v + ^ < +^ ,+55 .g11 < diff --git a/challenge-112/abigail/blog.txt b/challenge-112/abigail/blog.txt new file mode 100644 index 0000000000..18da944aa5 --- /dev/null +++ b/challenge-112/abigail/blog.txt @@ -0,0 +1 @@ +https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-112-1.html diff --git a/challenge-112/abigail/blog1.txt b/challenge-112/abigail/blog1.txt new file mode 100644 index 0000000000..ea0b25bd14 --- /dev/null +++ b/challenge-112/abigail/blog1.txt @@ -0,0 +1 @@ +https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-112-2.html diff --git a/challenge-112/abigail/java/ch-2.java b/challenge-112/abigail/java/ch-2.java new file mode 100644 index 0000000000..b1db2db642 --- /dev/null +++ b/challenge-112/abigail/java/ch-2.java @@ -0,0 +1,24 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-2.java ch2.java; javac ch2.java; java ch2 < input-file +// + +import java.util.Scanner; +import java.lang.Math; + + +public class ch2 { + public static void main (String [] args) { + final double SQRT5 = Math . sqrt (5); + final double PHI = (1 + SQRT5) / 2; + Scanner scanner = new Scanner (System . in); + while (scanner . hasNextInt ()) { + System . out . printf ("%d\n", + (int) Math . round ( + Math . pow (PHI, scanner . nextInt () + 1) / SQRT5)); + } + } +} diff --git a/challenge-112/abigail/perl/ch-1.pl b/challenge-112/abigail/perl/ch-1.pl index b68a966191..5d7a0157d5 100644 --- a/challenge-112/abigail/perl/ch-1.pl +++ b/challenge-112/abigail/perl/ch-1.pl @@ -19,25 +19,17 @@ use experimental 'lexical_subs'; while (<>) { chomp; - - # Remove duplicate slashes - s !/\K/+!!g; - - # Add a trailing slash; this makes it easier to deal - # with the cases below. - $_ .= "/"; - - # Remove single period - s !/\.(?=/)!!g; - - # Remove double period - 1 while s !/[^/]+/\.\.(?=/)!!; - - # Remove any leading /../ - 1 while s !^/\.\./!/!; - - # Remove trailing slashes - s !/+$!!; - - say $_ || '/'; + my @parts = split /\/+/; + my @parts2; + + foreach my $part (@parts) { + next if $part eq "." || $part eq ""; + if ($part eq "..") { + pop @parts2; + next; + } + push @parts2 => $part; + } + + say "/" . join "/" => @parts2; } diff --git a/challenge-112/abigail/r/ch-2.r b/challenge-112/abigail/r/ch-2.r new file mode 100644 index 0000000000..4d1fd9db6d --- /dev/null +++ b/challenge-112/abigail/r/ch-2.r @@ -0,0 +1,20 @@ +# +# See ../README.md +# + +# +# Run as: Rscript ch-2.r < input-file +# + +stdin <- file ('stdin', 'r') + +sqrt5 <- sqrt (5) +phi <- (1 + sqrt5) / 2 + +repeat { + n <- readLines (stdin, n = 1) + if (length (n) == 0) { + break + } + cat (round (phi ^ (as.integer (n) + 1) / sqrt5), "\n", sep = "") +} |
