diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-06 15:26:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-06 15:26:01 +0100 |
| commit | 473b677c285cd071f7ee78f833f65640f692ac66 (patch) | |
| tree | 10ca108184f6dc996dfe4e30e7ab86509ce6a57e | |
| parent | 8c9df0a91a3d86ef668a7bd013331b177efe6339 (diff) | |
| parent | c1b69ecfb866f96fc60f24bd25306e8c9274b8c4 (diff) | |
| download | perlweeklychallenge-club-473b677c285cd071f7ee78f833f65640f692ac66.tar.gz perlweeklychallenge-club-473b677c285cd071f7ee78f833f65640f692ac66.tar.bz2 perlweeklychallenge-club-473b677c285cd071f7ee78f833f65640f692ac66.zip | |
Merge pull request #11980 from pjcs00/wk320
Week 320 - Fun with integers
| -rw-r--r-- | challenge-320/peter-campbell-smith/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-320/peter-campbell-smith/perl/ch-1.pl | 32 | ||||
| -rwxr-xr-x | challenge-320/peter-campbell-smith/perl/ch-2.pl | 31 |
3 files changed, 64 insertions, 0 deletions
diff --git a/challenge-320/peter-campbell-smith/blog.txt b/challenge-320/peter-campbell-smith/blog.txt new file mode 100644 index 0000000000..fc4be057a3 --- /dev/null +++ b/challenge-320/peter-campbell-smith/blog.txt @@ -0,0 +1 @@ +http://ccgi.campbellsmiths.force9.co.uk/challenge/320 diff --git a/challenge-320/peter-campbell-smith/perl/ch-1.pl b/challenge-320/peter-campbell-smith/perl/ch-1.pl new file mode 100755 index 0000000000..038fde0544 --- /dev/null +++ b/challenge-320/peter-campbell-smith/perl/ch-1.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl + +# Blog: http://ccgi.campbellsmiths.force9.co.uk/challenge + +use v5.26; # The Weekly Challenge - 2025-05-05 +use utf8; # Week 320 - task 1 - Maximum count +use warnings; # Peter Campbell Smith +binmode STDOUT, ':utf8'; +use Encode; + +maximum_count(-3, -2, -1, 1, 2, 3); +maximum_count(-2, -1, 0, 0, 1); +maximum_count(1, 2, 3, 4); +maximum_count(0, 0, 0); + +# larger example +my @nums; +push @nums, int(rand(41)) - 20 for 0 .. 99; +maximum_count(@nums); + +sub maximum_count { + + my %count = (pos => 0, neg => 0, zero => 0); + + # count +ves, -ves and 0s + $count{$_ < 0 ? 'neg' : ($_ > 0 ? 'pos' : 'zero')} ++ for @_; + + # report + say qq[\nInput: (] . join (', ', @_) . ')';; + say qq[Output: ] . ($count{pos} > $count{neg} ? $count{pos} : $count{neg}) . + qq[ ($count{neg} negative, $count{pos} positive, $count{zero} zero)]; +} diff --git a/challenge-320/peter-campbell-smith/perl/ch-2.pl b/challenge-320/peter-campbell-smith/perl/ch-2.pl new file mode 100755 index 0000000000..57750641c6 --- /dev/null +++ b/challenge-320/peter-campbell-smith/perl/ch-2.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +# Blog: http://ccgi.campbellsmiths.force9.co.uk/challenge + +use v5.26; # The Weekly Challenge - 2025-05-05 +use utf8; # Week 320 - task 2 - Sum difference +use warnings; # Peter Campbell Smith +binmode STDOUT, ':utf8'; +use Encode; + +sum_difference(1, 23, 4, 5); +sum_difference(1, 2, 3, 4, 5); +sum_difference(1, 2, 34); + +# larger example +my @nums; +push @nums, int(rand(1000)) for 0 .. 99; +sum_difference(@nums); + +sub sum_difference { + + my (@integers, $elements, $digits); + @integers = @_; + + # make the desired sums + $elements += $_ for @integers; + $digits = eval(join('+', split('', join('', @integers)))); + + say qq[\nInput: (] . join(', ', @integers) . q[)]; + say qq[Output: ] . ($elements - $digits) . qq[ (elements = $elements, digits = $digits)]; +} |
