php实现大整数加法

来源:互联网 发布:数据记录表 编辑:程序博客网 时间:2024/05/01 03:21

4月份的时候参加了腾讯的实习生招聘。一面时,面试官给了出了这道考题:用字符串表示两个大整数,实现这两个整数的加法。由于最近一段时间没怎么写程序,加上面试时有点紧张,写出的程序被面试官找出了不少问题。今天自己把这个程序重新认真写了一遍,第一次写出来时还是出现了不少细节问题。希望自己以后写程序时思维能更严密。

function addfunc($stra,$strb){
$str = '';
if(is_string($stra)&&is_string($strb)){
$i=strlen($stra)-1;
$j=strlen($strb)-1;
$c=0;
while($i>=0&&$j>=0){
$t = ($stra[$i]+$strb[$j]+$c)%10;//注意加进位量
$str = $t.$str;
if($stra[$i]+$strb[$j]+$c>=10)
$c = 1;
else //无需进位也要重置进位量
$c = 0;
$i--; //变量递增
$j--;
}
while($i>=0){
$t = ($stra[$i]+$c)%10;
$str = $t.$str;
if($stra[$i]+$c>=10)
$c = 1;
else
$c = 0;
$i--;
}
while($j>=0){
$t = ($strb[$j]+$c)%10;
$str = $t.$str;
if($strb[$j]+$c>=10)
$c = 1;
else
$c = 0;
$j--;
}
if($c==1){
$str = $c.$str;
}
}
return $str;
}