超大字符串型整数相加的简单实现
实现超出整数存储范围的两个大正整数相加,两个大正整数均为字符串类型。
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(''); }
能工摹形,巧匠窃意。