diff options
| author | lakpatashi <lakpatashi@gmail.com> | 2021-04-13 22:14:22 +0530 |
|---|---|---|
| committer | lakpatashi <lakpatashi@gmail.com> | 2021-04-13 22:14:22 +0530 |
| commit | 04cceed50aa1edcd78ca3f7fc872d88b499be7af (patch) | |
| tree | cc1b6d7ec31be1c370e7b66508428fb3d61becda /challenge-002 | |
| parent | d86a2af7b9adee8bf20485ce237dec6935deddec (diff) | |
| download | perlweeklychallenge-club-04cceed50aa1edcd78ca3f7fc872d88b499be7af.tar.gz perlweeklychallenge-club-04cceed50aa1edcd78ca3f7fc872d88b499be7af.tar.bz2 perlweeklychallenge-club-04cceed50aa1edcd78ca3f7fc872d88b499be7af.zip | |
Revision to challenge #002 perl
Diffstat (limited to 'challenge-002')
| -rwxr-xr-x | challenge-002/lakpatashi/perl/ch-1.pl | 6 | ||||
| -rwxr-xr-x | challenge-002/lakpatashi/perl/ch-2.pl | 47 |
2 files changed, 35 insertions, 18 deletions
diff --git a/challenge-002/lakpatashi/perl/ch-1.pl b/challenge-002/lakpatashi/perl/ch-1.pl index 0b3cf1b5cc..a599171f61 100755 --- a/challenge-002/lakpatashi/perl/ch-1.pl +++ b/challenge-002/lakpatashi/perl/ch-1.pl @@ -5,9 +5,9 @@ use warnings; # PART 1 -my $var = 'Perl Weekly Challenge'; +my $var = '000012340000'; print "Before:: $var\n"; -my $repCount = $var =~ s/e/E/g; +my $repCount = $var =~ s/^0+//g; print "After :: $var\n"; -print "Pattern matched:: $repCount\n"; +print "char Replaced:: $repCount\n"; diff --git a/challenge-002/lakpatashi/perl/ch-2.pl b/challenge-002/lakpatashi/perl/ch-2.pl index aa05b41cf7..ef4bec3468 100755 --- a/challenge-002/lakpatashi/perl/ch-2.pl +++ b/challenge-002/lakpatashi/perl/ch-2.pl @@ -4,22 +4,39 @@ use strict; use warnings; # PART 2 +use List::Util qw(min max sum); +use Data::Dumper qw(Dumper); +my %digit; +my @keys = ( (0..9),('A'..'Y') ); +my @values = (0..35); +@digit{@keys}=@values; +my %digitRev = reverse %digit; +#print Dumper \%digitRev; -use feature "switch"; +my $num1 = 'A1K3'; +print "Given base35 no:: $num1\n"; +print "converted to int no:: ",intToBase35($num1),"\n"; -for my $i (1..20){ - given($i){ - when(not $i%15){ - print "fizzbuzz\n"; - } - when(not $i%3){ - print "fizz\n"; - } - when(not $i%5){ - print "buzz\n"; - } - default{ - print "$i\n"; - } +my $num2 = 430678; +print "Given int no:: $num2\n"; +print "converted to base35 no:: ",base35ToInt($num2),"\n"; + + +sub intToBase35{ + my @num = split '', shift; + @num = reverse @num; + @num = map { $digit{$num[$_]} * 35**$_ } 0..$#num ; + return sum @num; +} + +sub base35ToInt{ + my $num = shift; + my @arr; + while($num > 35){ + unshift @arr, $num%35; + $num = int($num/35); } + unshift @arr, $num; + @arr = map { $digitRev{$_} } @arr; + return join '',@arr; } |
