一般的大数相加都是将两个字符串进行拆分然后倒序相加,这样比较麻烦,看到一个比较简单的快速实现两个大数相加的方法:

    1. function sumStrings(a, b) {
    2.     var res = '', c = 0;
    3.     a = a.split('');
    4.     b = b.split('');
    5.     while (a.length || b.length || c) {
    6.         c += ~~a.pop() + ~~b.pop();
    7.         // 取个位数
    8.         res = c % 10 + res;
    9.         // 判断是否有进位
    10.         c = c > 9;
    11.     }
    12.     return res.replace(/^0+/, '');
    13. }

    这里注意~~a.pop(),如果有数字就变成数字,如果是undefined,那么就会变成0。

    回到顶部
    我要评论

    所有评论

      相关文章