美文网首页
11.大数相加

11.大数相加

作者: percykuang | 来源:发表于2019-08-24 00:06 被阅读0次

题目描述

如何实现两个非常大的数字(已经超出了Number范围)的加法运算。

注意由于这两个已经超过了Number范围,因此不能用Number存,这里我们选择使用字符串存储。

思路

我们只要将两个数字前面补0至相同的长度,然后从低位到高位进行相加, 同时用一个变量记录进位的信息即可。

参考代码

function bigNumberSum(a, b) {
  // 123456789
  // 000009876

  // padding
  let cur = 0;
  while (cur < a.length || cur < b.length) {
    if (!a[cur]) {
      a = "0" + a;
    } else if (!b[cur]) {
      b = "0" + b;
    }
    cur++;
  }

  let carried = 0;
  const res = [];

  for (let i = a.length - 1; i > -1; i--) {
    const sum = carried + +a[i] + +b[i];
    if (sum > 9) {
      carried = 1;
    } else {
      carried = 0;
    }
    res[i] = sum % 10;
  }

  if (carried === 1) {
    res.unshift(1);
  }

  return res.join("");
}

相关文章

  • 11.大数相加

    题目描述 如何实现两个非常大的数字(已经超出了Number范围)的加法运算。 注意由于这两个已经超过了Number...

  • 前端-大数相加

    大数相加

  • 大数相加

    大数相加类

  • JSCoding

    大数相加 深拷贝

  • 大数相加

    大数相加(java) 一、BigDecimal工具类 二、转换为字符串解法

  • JS大数字相加

    问:如何计算大数字的相加?大到可以溢出的那种。 大数字相加,避免使用传统的相加(可能会溢出),所以使用数学题的思路...

  • P98-任意两个整数的加法

    两个大数(包括负数)相加

  • [算法] 大数相加

    看到个有意思的问题 “给定2个整数,这两个数大的连long类型都装不下,如何计算两数和” 实践了一下,可以用数组存...

  • js大数相加

    js的数值是有上限的,但是如果我们需要超过上限的数来相加怎么办,这个题也是面试经常会考的一个题。 思路: 1.将传...

  • 大数据相加

网友评论

      本文标题:11.大数相加

      本文链接:https://www.haomeiwen.com/subject/nioxectx.html