in reply to Re^2: Reversed long division
in thread Reversed long division

wth? It is the inverse of longdiv. Well, aside from the fact that longdiv gives the wrong answer. 15000000 is not equal to 2000000 + 206/222.

#!/usr/bin/perl -w use strict; sub longdiv { # take the parameter passed into the sub and store in $in my $in = shift; ... # return the result return ($out, $carry); } sub longmul { my ($div, $mod) = @_; my $out = sprintf('%06d', substr($div, -3, 3, '') * 222 + $mod); while (length($div)) { substr($out, 0, 3, sprintf('%04d', substr($out, 0, 3) + substr($div, -1, 1, '') * 222 )); } $out =~ s/^0+//; return $out; } # call the function and print the output my ($out, $carry) = longdiv("15000000"); print("$out, $carry\n"); # WRONG. Should be 67567 and 126. print(longmul($out, $carry), "\n"); print(longmul('67567', 126), "\n");

Replies are listed 'Best First'.
A reply falls below the community's threshold of quality. You may see it by logging in.