aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-140/jake/perl/ch-1.pl30
1 files changed, 14 insertions, 16 deletions
diff --git a/challenge-140/jake/perl/ch-1.pl b/challenge-140/jake/perl/ch-1.pl
index b165ee6dcf..b0c78536ed 100644
--- a/challenge-140/jake/perl/ch-1.pl
+++ b/challenge-140/jake/perl/ch-1.pl
@@ -15,26 +15,24 @@ printf ( "binary number a: %i\n", $a_binary );
# convert dec to bin
sub decimal_to_binary {
- my ( $power, $decimal_number ) = @_;
+ my ( $power, $decimal_number, $binary_quantum ) = @_;
+
if ( $decimal_number == 0 ) {
return 0;
- #exit;
- }
- elsif ( $decimal_number == 2**$power ) {
- print "if\n$decimal_number\n$power\n\n";
- return 10**$power;
- #exit;
}
- elsif ( $decimal_number <= 2**($power+1) ) {
- $power++;
- decimal_to_binary ( $power, $decimal_number );
- print "elsif\n$decimal_number\n$power\n\n";
+
+ if ( $decimal_number == 2**$power ) {
+ $binary_quantum += 10**$power;
+ return $binary_quantum;
}
- else {
- return 10**($power+1);
- $decimal_number -= 2**($power+1);
+
+ if ( $decimal_number > 2**$power && $decimal_number < 2**( $power +1 ) ) {
+ $binary_quantum += 10**$power;
+ $decimal_number -= 2**$power;
$power = 0;
- print "else\n$decimal_number\n$power\n\n";
- decimal_to_binary ( $power, $decimal_number );
+ return decimal_to_binary ( $power, $decimal_number, $binary_quantum );
}
+
+ $power++;
+ return decimal_to_binary ( $power, $decimal_number, $binary_quantum );
} \ No newline at end of file