How can i get summation of two string number using carry?
For example:
$a='134526897556';
$b='251452365655';
I need this ans without using as usual addition($a+$b). I need this like as first (6+5)=11 carry 1 second (5+5)=10 within carry it will be 11 then carry 1.. continuous.
I hope you are looking for this. Try following code to extract single character from reverse and sum that then reverse again and display it.
$a='5465574541345268975564654';
$b='2514523656557987';
echo "Normal sum : ".($a +$b);
echo "<br>";
$main_loop = strlen($a);
if(strlen($a) < strlen($b)){
$main_loop = strlen($b);
$a = str_pad($a,strlen($b),"0",STR_PAD_LEFT);
}
else
{
$b = str_pad($b,strlen($a),"0",STR_PAD_LEFT);
}
$carry = 0;
$str = "";
$new_sum = "";
for($i = $main_loop-1;$i>=0;$i--)
{
$char_a = isset($a[$i])?$a[$i]:0;
$char_b = isset($b[$i])?$b[$i]:0;
$sum_char =(string)($char_a + $char_b + $carry);
$carry = 0;
$str = (string)$sum_char[0];
if(strlen($sum_char) > 1)
{
$carry = $sum_char[0];
$str = $sum_char[1];
}
$new_sum .= $str;
}
$new_sum = strrev($new_sum);
echo $new_sum;
It is straight forward mathematics;
Add the two variables:
$a + $b;