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");
In reply to Re^3: Reversed long division
by ikegami
in thread Reversed long division
by Smoke
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |