专栏首页脑洞前端[编程题] 大数相加

[编程题] 大数相加

题目描述

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

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

思路

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

值得注意的是,最后需要判断一下进位是否是0,如果不是0需要在最前面添加一个1。

参考代码

function bigNumberSum(a, b) {  

  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 curried = 0;
  const res = [];

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

  return res.join("");
}

本文分享自微信公众号 - 脑洞前端(fe_lucifer)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 40. 组合总和 II

    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

    lucifer210
  • 5. 最长回文子串

    给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

    lucifer210
  • 229. 求众数 II

    https://leetcode.com/problems/majority-element-ii/description/

    lucifer210
  • IPV6|IPV4到IPV6的过渡解决方案

    中间的区域是用IPV4地址并启用EIGRP路由协议实现互通互联,两边用环回口模拟IPV6地址通信,使得2001:1::/64网段主机能够访问2001:3::/6...

    刘銮奕
  • 零基础学习 Python 之条件语句

    大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具体应用方面。我是完全自学的 Python,所以很...

    Rocky0429
  • 内容高度小于窗口高度时版权 div 固定在底部

    网站建设中经常遇到文档内容高度小于窗口高度时底部版权 div 固定在底部的问题,纯 css div 底部不太好解决这个问题,这里使用 js 代码来对检测文档高度...

    Savalone
  • 详细解释EM推导过程

    1 最大似然概率 例子是说测量校园里面同学的身高分布,分为男生和女生,分别抽取100个人...具体的不细讲了,参考文档中讲得很详细。假设他们的身高是服从...

    机器学习AI算法工程
  • eve-ng模拟ospf虚连接小实验

    新建网络按照区域间的防环规则进行部署,可以避免区域间环路问题。但是部分网络可能因早期规划问题,区域间的连接关系违背了骨干区域和非骨干区域的规则违背了OSPF区域...

    释然
  • Python语句-if.....else......

    似乎所有的条件语句都使用if.....else.....,它的作用可以简单地概括为非此即彼,满足条件A则执行A的语句,否则执行B语句,python的if.......

    py3study
  • 【问题笔记】由乱码引起的“惨案”

    问题笔记 办法总比问题多 整理记录最真实的客户在GPU编程中遇到的问题 及我们的解决办法   一大早一个妹子在QQ上说安装了最新的PGI加速编译器和正版授权后,...

    GPUS Lady

扫码关注云+社区

领取腾讯云代金券