diff options
| author | Lubos Kolouch <lubos@kolouch.net> | 2019-09-22 12:50:56 +0200 |
|---|---|---|
| committer | Lubos Kolouch <lubos@kolouch.net> | 2019-09-22 12:50:56 +0200 |
| commit | b65067b778ddc88a8dd94ca2a2cad5a1838c58cb (patch) | |
| tree | 31780e93284093c854c19b70e1db380e0a749a79 /challenge-026 | |
| parent | b5cd9d2d75a95ea07ff03ef00aa74722ff0fe866 (diff) | |
| download | perlweeklychallenge-club-b65067b778ddc88a8dd94ca2a2cad5a1838c58cb.tar.gz perlweeklychallenge-club-b65067b778ddc88a8dd94ca2a2cad5a1838c58cb.tar.bz2 perlweeklychallenge-club-b65067b778ddc88a8dd94ca2a2cad5a1838c58cb.zip | |
Challenge 026 Lubos
Diffstat (limited to 'challenge-026')
| -rw-r--r-- | challenge-026/lubos-kolouch/perl5/ch-1.pl | 49 | ||||
| -rw-r--r-- | challenge-026/lubos-kolouch/perl5/ch-2.pl | 48 |
2 files changed, 97 insertions, 0 deletions
diff --git a/challenge-026/lubos-kolouch/perl5/ch-1.pl b/challenge-026/lubos-kolouch/perl5/ch-1.pl new file mode 100644 index 0000000000..ce3a21d98e --- /dev/null +++ b/challenge-026/lubos-kolouch/perl5/ch-1.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl +#=============================================================================== +# +# FILE: ch-1.pl +# +# USAGE: ./ch-1.pl +# +# DESCRIPTION: Perl weekly challenge 26 #1 +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/ +# +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Lubos Kolouch +# ORGANIZATION: +# VERSION: 1.0 +# CREATED: 09/22/2019 12:28:35 PM +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use feature qw/say/; + +sub get_common_chars { + my ( $word1, $word2 ) = @_; + + my $count = 0; + for ( split //, $word1 ) { + $count++ if $word2 =~ /$_/msx; + } + + return $count; +} + +die 'Usage: script word1 word2' unless @ARGV == 2; + +say get_common_chars(@ARGV); + +# TESTS +use Test::More; + +is( get_common_chars( 'chancellor', 'chocolate' ), 8 ); +is( get_common_chars( 'chancellor', 'chocolat' ), 7 ); +is( get_common_chars( 'abcde', 'fghi' ), 0 ); + +done_testing; diff --git a/challenge-026/lubos-kolouch/perl5/ch-2.pl b/challenge-026/lubos-kolouch/perl5/ch-2.pl new file mode 100644 index 0000000000..96b5be4b04 --- /dev/null +++ b/challenge-026/lubos-kolouch/perl5/ch-2.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl +#=============================================================================== +# +# FILE: ch-2.pl +# +# USAGE: ./ch-2.pl +# +# DESCRIPTION: Perl weekly challenge 26 #2 +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-026/ +# +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Lubos Kolouch +# ORGANIZATION: +# VERSION: 1.0 +# CREATED: 09/22/2019 12:28:35 PM +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use feature qw/say/; +use Math::Trig; # mainly for Pi + +sub get_mean { + my @angles = @_; + + my ( $sin_sum, $cos_sum ); + + $sin_sum += sin( deg2rad($_) ) for @angles; + $cos_sum += cos( deg2rad($_) ) for @angles; + + return rad2deg( atan2( $sin_sum, $cos_sum ) ); +} + +die 'Usage: script angle1 angle2 ...' unless @ARGV >= 2; + +say get_mean(@ARGV); + +# TESTS +use Test::More; + +is( get_mean( 0, 0, 90 ), 26.565051177078 ); + +done_testing; |
