diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-03-18 16:51:56 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-18 16:51:56 +0000 |
| commit | 46cf2ec29f488c992bf0a9c142f2cb8dd7ea2e5d (patch) | |
| tree | 9c6fa00d9b71a7db01be93d6e05270d04d9fd9a7 | |
| parent | 88117513f41c7ad8f787bc1381b26617386991ab (diff) | |
| parent | ee68d75999a2bca24bf0d900513936d9170f6f7c (diff) | |
| download | perlweeklychallenge-club-46cf2ec29f488c992bf0a9c142f2cb8dd7ea2e5d.tar.gz perlweeklychallenge-club-46cf2ec29f488c992bf0a9c142f2cb8dd7ea2e5d.tar.bz2 perlweeklychallenge-club-46cf2ec29f488c992bf0a9c142f2cb8dd7ea2e5d.zip | |
Merge pull request #9768 from pjcs00/wk261
Week 261 challenge
| -rw-r--r-- | challenge-261/peter-campbell-smith/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-261/peter-campbell-smith/perl/ch-1.pl | 37 | ||||
| -rwxr-xr-x | challenge-261/peter-campbell-smith/perl/ch-2.pl | 32 |
3 files changed, 70 insertions, 0 deletions
diff --git a/challenge-261/peter-campbell-smith/blog.txt b/challenge-261/peter-campbell-smith/blog.txt new file mode 100644 index 0000000000..292afaaa8c --- /dev/null +++ b/challenge-261/peter-campbell-smith/blog.txt @@ -0,0 +1 @@ +http://ccgi.campbellsmiths.force9.co.uk/challenge/261 diff --git a/challenge-261/peter-campbell-smith/perl/ch-1.pl b/challenge-261/peter-campbell-smith/perl/ch-1.pl new file mode 100755 index 0000000000..d7d2b79ee1 --- /dev/null +++ b/challenge-261/peter-campbell-smith/perl/ch-1.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl + +# Blog: http://ccgi.campbellsmiths.force9.co.uk/challenge + +use v5.26; # The Weekly Challenge - 2024-03-18 +use utf8; # Week 261 - task 1 - Element digit sum +use warnings; # Peter Campbell Smith +binmode STDOUT, ':utf8'; + +my (@ints, $j); + +element_digit_sum(1, 2, 3, 45); +element_digit_sum(1, 12, 3); +element_digit_sum(1, 2, 3, 4); +element_digit_sum(236, 416, 336, 350); + +# longer random example +for $j (0 .. 49) { + $ints[$j] = int(rand(1000)); +} +element_digit_sum(@ints); + +sub element_digit_sum { + + my (@ints, $digit_sum, $element_sum, $difference); + + # calculate sums + @ints = @_; + $element_sum += $_ for @ints; + $digit_sum += $_ for split('', join('', @ints)); + + # calculate difference + $difference = abs($element_sum - $digit_sum); + + say qq[\nInput: \@ints = (] . join(', ', @ints) . qq[)\n] . + qq[Output: $difference (element sum = $element_sum, digit sum = $digit_sum)]; +} diff --git a/challenge-261/peter-campbell-smith/perl/ch-2.pl b/challenge-261/peter-campbell-smith/perl/ch-2.pl new file mode 100755 index 0000000000..0995b67779 --- /dev/null +++ b/challenge-261/peter-campbell-smith/perl/ch-2.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl + +# Blog: http://ccgi.campbellsmiths.force9.co.uk/challenge + +use v5.26; # The Weekly Challenge - 2024-03-18 +use utf8; # Week 261 - task 2 - Multiply by 2 +use warnings; # Peter Campbell Smith +binmode STDOUT, ':utf8'; + +multiply_by_2([5, 3, 6, 1, 12], 3); +multiply_by_2([1, 2, 4, 3], 1); +multiply_by_2([5, 6, 7], 2); +multiply_by_2([64, 256, 4, 64, 128, 2, 16, 32, 8], 2); + +sub multiply_by_2 { + + my (@ints, $start, $string); + + # initialise + @ints = @{$_[0]}; + $start = $_[1]; + + # join @ints as string + $string = ',' . join(',', @ints) . ','; + + # search string as per task + $start *= 2 while ($string =~ m|,$start,|); + + say qq[\nInput: \@ints = (] . join(', ', @ints) . + qq[}, \$start = $_[1]]; + say qq[Output: $start]; +} |
