in reply to Re: oldschool math
in thread oldschool math
sub add($$) { my ($Val1, $Val2) = @_; my ($Result, $Tmp) = ('',0); my $In_Mente = ''; (length($Val1) < length($Val2)) ? ($Val1, $Val2)=($Val2, $Val1):0; while (length($Val2) || length($Val1)) { $Tmp = substr($Val1,-1,1); $Tmp += substr($Val2, -1, 1) if (length($Val2)); $Tmp += $In_Mente if (length($In_Mente)); if ($Tmp > 9) { $In_Mente = 1; $Tmp -= 10;} else { $In_Mente = ''; } $Result = $Tmp . $Result; substr($Val1, -1, 1) = ''; substr($Val2, -1, 1) = ''; my $FResult = $Result; last if ($In_Mente eq '' && !length($Val2)); } $Result = $In_Mente . $Result; $Result = $Val1 . $Result; return $Result; } $a = '99999999999999999999999999999999999999999999'; $b = '1'; print " $a\n+ $b\n= ", add($a, $b);
99999999999999999999999999999999999999999999 + 1 = 100000000000000000000000000000000000000000000
|
|---|