function power($a,$b){
if($b==1)return $a;
return multiply($a,(power($a,$b-1)));
}
function multiply($a,$b){
$a = ''.$a;
$b = ''.$b;
$b_length = strlen($b);
$value = '';
for($i=1;$i<=$b_length;$i++){
$b2 = $b[$b_length-$i];
$mul = $a*$b2+$temp;
$temp = floor($mul/10);
$value = ($mul%10).$value;
}
$value = $temp.$value;
return $value;
}
with both $a and $b is string
strlen($a) == 1
Friday, February 27, 2009
multiply, power function with large number
Tuesday, February 24, 2009
plus function for large number
function plus($a,$b){
$b_length = strlen($b)+1;
$a = sprintf("%0".$b_length."s", $a);
$b = '0'.$b;
$a_length = strlen($a);
$temp =0;
for($i=0;$i<$a_length;$i++){
$a1 = substr($a,-1,1);
$b1 = substr($b,-1,1);
$a = substr($a,0,-1);
$b = substr($b,0,-1);
$result = ($a1+$b1+$temp)%10;
$ans = $result.$ans;
$temp = floor(($a1+$b1+$temp)/10);
}
$ans = $b.$ans;
return ltrim($ans,'0');
}
with both $a and $b if string and strlen($a) < strlen($a)
Subscribe to:
Comments (Atom)