From deb6af08607e1e2a723b7cec1e17dd6ea298ab61 Mon Sep 17 00:00:00 2001 From: Abigail Date: Wed, 12 May 2021 12:22:43 +0200 Subject: Java solution for week 112, part 2 --- challenge-112/abigail/README.md | 1 + challenge-112/abigail/java/ch-2.java | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 challenge-112/abigail/java/ch-2.java diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index aba06c6afa..ebfd5aa08f 100644 --- a/challenge-112/abigail/README.md +++ b/challenge-112/abigail/README.md @@ -60,6 +60,7 @@ This is just finding the `$n + 1` Fibonacci number. * [Bash](bash/ch-2.sh) * [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) 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)); + } + } +} -- cgit From 1fc53a4c1738a8e127ba364681ab3fd234c5be55 Mon Sep 17 00:00:00 2001 From: Abigail Date: Wed, 12 May 2021 14:49:05 +0200 Subject: Befunge-93 solution for week 112, part 2 --- challenge-112/abigail/README.md | 1 + challenge-112/abigail/befunge-93/ch-2.bf93 | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 challenge-112/abigail/befunge-93/ch-2.bf93 diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index ebfd5aa08f..ea6f9e783a 100644 --- a/challenge-112/abigail/README.md +++ b/challenge-112/abigail/README.md @@ -58,6 +58,7 @@ 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) 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 < -- cgit From b36cd4c90b2457ba4d6e112c0417dfb9891c3cf2 Mon Sep 17 00:00:00 2001 From: Abigail Date: Wed, 12 May 2021 18:11:51 +0200 Subject: R solution for week 112, part 2 --- challenge-112/abigail/README.md | 1 + challenge-112/abigail/r/ch-2.r | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 challenge-112/abigail/r/ch-2.r diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index ea6f9e783a..da117ffa47 100644 --- a/challenge-112/abigail/README.md +++ b/challenge-112/abigail/README.md @@ -67,6 +67,7 @@ This is just finding the `$n + 1` Fibonacci number. * [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) 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 = "") +} -- cgit From db15b50ebbaeb24ebe4b4554d26d6175b52966f5 Mon Sep 17 00:00:00 2001 From: Abigail Date: Sun, 16 May 2021 18:16:13 +0200 Subject: Use same algorithm as other languages --- challenge-112/abigail/perl/ch-1.pl | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) 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; } -- cgit From f207da5e6d9b853a9dfe6412764e74760c6e962c Mon Sep 17 00:00:00 2001 From: Abigail Date: Sun, 16 May 2021 18:19:56 +0200 Subject: Add whitespace --- challenge-112/abigail/awk/ch-1.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 } { -- cgit From aaf1f99c4be7c95696ff9abb75b639d442e3061e Mon Sep 17 00:00:00 2001 From: Abigail Date: Sun, 16 May 2021 19:43:22 +0200 Subject: Links to blog posts --- challenge-112/abigail/README.md | 2 ++ challenge-112/abigail/blog.txt | 1 + challenge-112/abigail/blog1.txt | 1 + 3 files changed, 4 insertions(+) create mode 100644 challenge-112/abigail/blog.txt create mode 100644 challenge-112/abigail/blog1.txt diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index da117ffa47..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) @@ -72,3 +73,4 @@ This is just finding the `$n + 1` Fibonacci number. * [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/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 -- cgit