aboutsummaryrefslogtreecommitdiff
path: root/challenge-073/bob-lied
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-08-10 02:54:48 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-08-10 02:54:48 +0100
commit82d56a626e16b0a7dceeba973b3c69e14031d7f9 (patch)
treec741021456222e306f722bae737ad09dbd43fd6d /challenge-073/bob-lied
parent82dd9dbd3a76bf1b7a6e9902d2dd1897b22a88d9 (diff)
downloadperlweeklychallenge-club-82d56a626e16b0a7dceeba973b3c69e14031d7f9.tar.gz
perlweeklychallenge-club-82d56a626e16b0a7dceeba973b3c69e14031d7f9.tar.bz2
perlweeklychallenge-club-82d56a626e16b0a7dceeba973b3c69e14031d7f9.zip
- Added template for Challenge #073.
Diffstat (limited to 'challenge-073/bob-lied')
-rw-r--r--challenge-073/bob-lied/README65
1 files changed, 65 insertions, 0 deletions
diff --git a/challenge-073/bob-lied/README b/challenge-073/bob-lied/README
new file mode 100644
index 0000000000..be171d638e
--- /dev/null
+++ b/challenge-073/bob-lied/README
@@ -0,0 +1,65 @@
+Solutions to weekly challenge 72 by Bob Lied.
+
+https://perlweeklychallenge.org/blog/perl-weekly-challenge-072/
+
+This week, I would like to add two personal elements to the problem:
+(1) create a template for perl-vim that sets up these weekly challenges
+(includes Test::More, a skeleton for checking ARGV, and whatever else
+is quickly becoming a pattern; and (2) use a github issue in the submission
+process, just to learn more about using git and github.
+
+* TASK #1 > Trailing Zeroes
+
+** Initial thoughts
+
+Too easy, unless I'm missing something. The result gets a zero on the end every time
+it's multiplied by 10, and since we're doing factorials, that will happen every time N
+rolls past a multiple of 5. The answer is int(N/5), I think, but I'll need to convince
+myself completely.
+
+We could make it a little tougher by actually calculating N!, and maybe using Memoize
+as an optimization. And maybe finding out how high N can be until overflow or waiting time
+make it impractical.
+
+** Post Solution Thoughts
+
+Yep, it was really that easy. I implemented the factorial using Memoize just
+for fun. The highest number that didn't roll over to floating point was 20!.
+
+
+** Problem Statement
+
+You are given a positive integer $N (<= 10).
+
+Write a script to print number of trailing zeroes in $N!.
+
+* TASK #2 > Lines Range
+
+** Initial Thoughts
+
+This has come up often enough that I know I've done it in sed and awk; and in
+a pipeline with head and tail. The flip-flop operator comes to mind, but
+there'll be some experimentation for boundary conditions. Also some test
+cases for A or B being outside the range of the file or having an empty file.
+
+** Post Solution Thoughts
+
+The hardest part of this turned out to be how to set up tests. I wanted the
+testing to be self-contained, so I put the test data into __DATA__. But then
+re-reading that repeatedly for different tests required seeking back to the
+start and also resetting $. A couple of trips to Google there.
+
+I also wanted to capture the output in a variable and not just print to the
+console. I knew that a string could be opened as a file handle using a
+reference to the string. It should have been easy; but I spent a long time
+debugging before I realized that I had typed \&TestResult instead of
+\$TestResult.
+
+
+** Problem Statement
+
+You are given a text file name $file and range $A - $B where $A <= $B.
+
+Write a script to display lines range $A and $B in the given file.
+
+(That's A and B inclusive, from the examples.)