面试遇到的算法题—(大整数问题)
2017-03-11 18:29
363 查看
题:A、B都是大于24位的大整数,写一个函数,返回A+B的值。
function bigIntSum($a, $b){ //定义两个空数组 $arr_a = array(); $arr_b = array(); $arr = array(); //获取两个大整数的长度 $len_a = strlen($a); $len_b = strlen($b); //将大整数,倒序转换成数组(因为两个大整数可能不是一样长度,所以倒序) for($i = $len_a - 1; $i >= 0; $i--){ array_push($arr_a, $a[$i]); } for($j = $len_b - 1; $j >= 0; $j--){ array_push($arr_b, $b[$j]); } //比较两个大整数的长度 if($len_a > $len_b){ for ($m = 0; $m < $len_a; $m++) { //组成一个新数组 if($m < $len_b){ $arr[$m] = $arr_a[$m] + $arr_b[$m]; }else{ $arr[$m] = $arr_a[$m]; } } }else{ for ($m = 0; $m < $len_b; $m++) { //组成一个新数组 if($m < $len_a){ $arr[$m] = $arr_b[$m] + $arr_a[$m]; }else{ $arr[$m] = $arr_b[$m]; } } } array_reverse($arr); for ($k=0; $k < count($arr); $k++) { if($arr[$k]>=10){ $arr[$k] = $arr[$k] - 10; $arr[$k - 1] = $arr[$k - 1] + 1; } } $result = implode('', $arr); return $result; }
相关文章推荐
- 一个朋友面试时遇到的算法题(怎么组合后得到最大整数)
- 一个朋友面试时遇到的算法题(怎么组合后得到最大整数)
- HashMap与Hashtable的区别是面试中经常遇到的一个问题。这个问题看似简单,但如果深究进去,也能了解到不少知识。本文对两者从来源、特性、算法等多个方面进行对比总结。力争多角度、全方位的展示二者的不同,做到此问题的终结版。
- 经典面试问题:12小球问题算法(文档)
- 经典面试问题:12小球问题算法(源码)
- C/C++面试之算法系列--从“整数转换成字符串”看算法的联想
- C/C++面试之算法系列--整数数组的循环右移
- 经典面试问题:12小球问题算法(抄的)
- 经典面试问题:12小球问题算法(源码)
- 经典面试问题:12小球问题算法(源码)
- 经典面试问题:12小球问题算法(文档)
- 经典面试问题:12小球问题算法(源码)
- 继续发两道面试中遇到的问题,大家做做看。^_^
- 经典面试问题:12小球问题算法(文档)
- 经典面试问题:12小球问题算法(文档)
- 经典面试问题:12小球问题算法(文档)
- 经典面试问题:12小球问题算法(源码)
- 经典面试问题:12小球问题算法(文档)
- C/C++面试之算法系列--atoi(char *str)将字符串转换成整数
- 经典面试问题:12小球问题算法(源码)