码迷,mamicode.com
首页 > 其他好文 > 详细

两个超大的数字相加

时间:2020-05-25 00:20:57      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:i++   cin   reverse   rev   split   count   max   false   amp   

function largeCount(f, t) {
      f += "";
      t += "";
      let fl = f.length,
        tl = t.length,
        arr = [],
        i = 0,
        spacing = fl - tl,
        len = 0,
        lastMan = [],
        fr = f.split("").reverse(),
        tr = t.split("").reverse(),
        current = 0,
        curr = 0,
        isT, maxLen;
      if (spacing > 0) {
        len = tl;
        lastMan = fr;
        maxLen = fl;
      } else {
        len = fl;
        lastMan = tr;
        maxLen = tl;
      }
      function course(current, i) {
        if (current > 9) {
          arr[i] = current % 10;
          arr[i + 1] = 1;
          return true;
        } else {
          arr[i] = current;
          return false;
        }
      }
      for (; i < len;) {
        curr = arr[i] ? arr[i] : 0;
        current = fr[i] * 1 + tr[i] * 1 + curr * 1;
        course(current, i++);
        if (i === len) {
          if (arr[i]) {
            do {
              curr = lastMan[i];
              if (curr) {
                current = lastMan[i] * 1 + arr[i] * 1;
                isT = course(current, i++);
              } else {
                isT = false;
              }
            } while (isT && i < maxLen);
          }
          arr = [...arr, ...lastMan.slice(i)];
        }
      }
      return arr.reverse().join("");
    }

两个超大的数字相加

标签:i++   cin   reverse   rev   split   count   max   false   amp   

原文地址:https://www.cnblogs.com/wuxiexy/p/12953463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!