实现超出整数存储范围的两个大正整数相加, 两个大正整数均为字符串类型.
- function add(a,b){
- var a = a.split('');
- var b = b.split('');
- var c = a.pop(),
- d = b.pop();
- var e = [];
- while(c&&d){
- var sum = Number(c)+Number(d);
- e.unshift(sum);
- c = a.pop();
- d = b.pop();
- };
- (c||d) && e.unshift(c||d);
- if(a.length){
- e = a.concat(e);
- }
- if(b.length){
- e = b.concat(e);
- }
- var k = 0;
- for(var i=0,len=e[i].length;i<len;i++){
- e[i] = e[i] - 0 + k;
- if(e[i]>=10){
- e[i] = e[i] - 10;
- k = 1;
- continue;
- }
- k = 0;
- };
- if(k===1){
- e.unshift(1);
- }
- return e.join('');
- }
来源: http://www.bubuko.com/infodetail-2553104.html