aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordasJake <no_mail@github.com>2021-11-23 20:24:31 +0100
committerdasJake <no_mail@github.com>2021-11-23 20:24:31 +0100
commit5e5a7ef993605b2d6abbcfe7e119482a04a0f7a2 (patch)
tree9e1047ca16b78ba7d02f4fa4ad1cf97602fba836
parent59c35349871502dd9acedfcf24a01e24fc89ec54 (diff)
downloadperlweeklychallenge-club-5e5a7ef993605b2d6abbcfe7e119482a04a0f7a2.tar.gz
perlweeklychallenge-club-5e5a7ef993605b2d6abbcfe7e119482a04a0f7a2.tar.bz2
perlweeklychallenge-club-5e5a7ef993605b2d6abbcfe7e119482a04a0f7a2.zip
140 debug decimal_to_binary sub
-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