From 7877e9b3bfc9828b587daf80fdc232d4604f5abf Mon Sep 17 00:00:00 2001 From: Yet Ebreo Date: Mon, 8 Mar 2021 23:22:45 +0800 Subject: Added perl solution ch102-2 --- challenge-102/yet-ebreo/perl/ch-2.pl | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 challenge-102/yet-ebreo/perl/ch-2.pl (limited to 'challenge-102') diff --git a/challenge-102/yet-ebreo/perl/ch-2.pl b/challenge-102/yet-ebreo/perl/ch-2.pl new file mode 100644 index 0000000000..4197f1d406 --- /dev/null +++ b/challenge-102/yet-ebreo/perl/ch-2.pl @@ -0,0 +1,37 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use feature qw(say); + + +# You are given a positive integer $N. + +# Write a script to produce Hash-counting string of that length. + +# The definition of a hash-counting string is as follows: + +# - the string consists only of digits 0-9 and hashes, ‘#’ +# - there are no two consecutive hashes: ‘##’ does not appear in your string +# - the last character is a hash +# - the number immediately preceding each hash (if it exists) is the position of that hash in the string, with the position being counted up from 1 +# It can be shown that for every positive integer N there is exactly one such length-N string. + +# Examples: +# (a) "#" is the counting string of length 1 +# (b) "2#" is the counting string of length 2 +# (c) "#3#" is the string of length 3 +# (d) "#3#5#7#10#" is the string of length 10 +# (e) "2#4#6#8#11#14#" is the string of length 14 + +my $N = $ARGV[0] || 2; +my $out = ""; + +while ($N) { + $out = ($N>1?"$N":"")."#$out"; + $N = $ARGV[0] - length $out; +} + + +say $out; + -- cgit