aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordasJake <no_mail@github.com>2021-11-22 20:43:56 +0100
committerdasJake <no_mail@github.com>2021-11-22 20:43:56 +0100
commitf4eeeed382a60317c349a65658019cf110dde1ab (patch)
treefcbc567c95ee581f74b4b014c81ca2c653ecaae0
parente57e8ba97ca974deeadbd7137390e99a38d8304d (diff)
downloadperlweeklychallenge-club-f4eeeed382a60317c349a65658019cf110dde1ab.tar.gz
perlweeklychallenge-club-f4eeeed382a60317c349a65658019cf110dde1ab.tar.bz2
perlweeklychallenge-club-f4eeeed382a60317c349a65658019cf110dde1ab.zip
140 BUGGY add decimal_to_binary subroutine
-rw-r--r--challenge-140/jake/perl/ch-1.pl40
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-140/jake/perl/ch-1.pl b/challenge-140/jake/perl/ch-1.pl
new file mode 100644
index 0000000000..b165ee6dcf
--- /dev/null
+++ b/challenge-140/jake/perl/ch-1.pl
@@ -0,0 +1,40 @@
+#!/r/bin/perl
+use strict;
+use warnings;
+
+# with this script you can add 2 binary numbers and get their sum as binary number
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-140/#TASK1
+
+# get input
+print "decimal number a: ";
+my $a = <STDIN>;
+chomp $a;
+my $power_n = 0;
+my $a_binary += decimal_to_binary ( $power_n, $a );
+printf ( "binary number a: %i\n", $a_binary );
+
+# convert dec to bin
+sub decimal_to_binary {
+ my ( $power, $decimal_number ) = @_;
+ 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";
+ }
+ else {
+ return 10**($power+1);
+ $decimal_number -= 2**($power+1);
+ $power = 0;
+ print "else\n$decimal_number\n$power\n\n";
+ decimal_to_binary ( $power, $decimal_number );
+ }
+} \ No newline at end of file