From deaab9ed10a31d6858630064dec4a646368ae149 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Sun, 1 Nov 2020 14:50:52 -0500 Subject: solution for challenge 084 --- challenge-084/adam-russell/blog.txt | 1 + challenge-084/adam-russell/perl/ch-1.pl | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 challenge-084/adam-russell/blog.txt create mode 100644 challenge-084/adam-russell/perl/ch-1.pl diff --git a/challenge-084/adam-russell/blog.txt b/challenge-084/adam-russell/blog.txt new file mode 100644 index 0000000000..d5dd4113f7 --- /dev/null +++ b/challenge-084/adam-russell/blog.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/2020/11/01#pwc084 diff --git a/challenge-084/adam-russell/perl/ch-1.pl b/challenge-084/adam-russell/perl/ch-1.pl new file mode 100644 index 0000000000..271bad6883 --- /dev/null +++ b/challenge-084/adam-russell/perl/ch-1.pl @@ -0,0 +1,24 @@ +use strict; +use warnings; +## +# You are given an integer $N. +# Write a script to reverse the given integer and print the result. +# Print 0 if the result doesn’t fit in 32-bit signed integer. +## +use Config; +use boolean; +use constant MAX_32BIT_SIGNED => 2_147_483_647; + +sub reverse_digits{ + my($n) = @_; + return 0 if $n > MAX_32BIT_SIGNED || $n < -1*MAX_32BIT_SIGNED; + my $negative = $n < 0 ? true : false; + $n = abs($n) if $negative; + return join("", reverse split(//, $n)) if !$negative; + return "-" . join("", reverse split(//, $n)); +} + +MAIN:{ + my $A = $ARGV[0]; + print reverse_digits($A) . "\n"; +} \ No newline at end of file -- cgit