aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pankoff <ccntrq@screenri.de>2020-12-08 14:11:00 +0100
committerAlexander Pankoff <ccntrq@screenri.de>2020-12-08 14:11:00 +0100
commit92d41f92a59d5ebad74d12edec19e86ad1d53aed (patch)
tree6ab69f8a2385bab865467445b055a57c92929b8d
parent958a003d916036a4f72aa87fa5a3d5ea2717d952 (diff)
downloadperlweeklychallenge-club-92d41f92a59d5ebad74d12edec19e86ad1d53aed.tar.gz
perlweeklychallenge-club-92d41f92a59d5ebad74d12edec19e86ad1d53aed.tar.bz2
perlweeklychallenge-club-92d41f92a59d5ebad74d12edec19e86ad1d53aed.zip
add verbose mode
-rwxr-xr-xchallenge-090/alexander-pankoff/perl/ch-2.pl13
1 files changed, 12 insertions, 1 deletions
diff --git a/challenge-090/alexander-pankoff/perl/ch-2.pl b/challenge-090/alexander-pankoff/perl/ch-2.pl
index eb588779f8..a66c4feea7 100755
--- a/challenge-090/alexander-pankoff/perl/ch-2.pl
+++ b/challenge-090/alexander-pankoff/perl/ch-2.pl
@@ -10,6 +10,8 @@ use List::Util qw(sum0);
use Test::Simple tests => 20;
+use constant VERBOSE => $ENV{VERBOSE} // 0;
+
{
for ( 0 .. 19 ) {
my ( $a, $b ) = map { int( rand( 1000 ) ) + 1 } 0 .. 1;
@@ -19,7 +21,16 @@ use Test::Simple tests => 20;
}
sub ethopian_mul ( $a, $b ) {
- return sum0( map { $_->[1] } grep { odd( $_->[0] ) } ethopian_mul_chain( $a, $b ) );
+ my @chain = ethopian_mul_chain( $a, $b );
+ verbose( "halving $a, doubling $b, till $a becomes 1" );
+ verbose( $_->[0] . ' & ' . $_->[1] ) for @chain;
+
+ my @filtered = map { $_->[1] } grep { odd( $_->[0] ) } @chain;
+ verbose( "taking right values where left value is odd" );
+ verbose( $_ ) for @filtered;
+ my $product = sum0( @filtered );
+ verbose( "product is $product" );
+ return $product;
}
sub ethopian_mul_chain ( $a, $b ) {