前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[编程题] 大数相加

[编程题] 大数相加

作者头像
lucifer210
发布2019-08-16 10:42:34
1K0
发布2019-08-16 10:42:34
举报
文章被收录于专栏:脑洞前端脑洞前端

题目描述

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

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

思路

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

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

参考代码

代码语言:javascript
复制
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("");
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 脑洞前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 思路
  • 参考代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档