JavaScript中大数相加的解法
一、两个大正整数字符串相加
1 function add(strNum1, strNum2) { 2 // 将传进来的数字/数字字符串调用toString方法转换成字符串,并进行切割,专成数组 3 let splitNum1 = strNum1.toString().split(''), 4 splitNum2 = strNum2.toString().split('') 5 6 // 判断两个数组的长度,进行值的互换,将splitNum1设置为最长的值,方便后续计算 7 if (splitNum1.length < splitNum2.length) { 8 let temp = splitNum1 9 splitNum1 = splitNum2 10 splitNum2 = temp 11 } 12 13 // carry: 进位值; currentNum: 相加之后,除以10的余数; sum: 相加的值 14 let len1 = splitNum1.length, 15 len2 = splitNum2.length, 16 carry = 0, 17 currentNum = 0, 18 sum = 0 19 20 // len1递减到1之后,循环体中的len1 - 1 = 0 即可拿到下标为零的数组元素, 21 // 所以这里条件是 大于 0,下面len2 > 0 同理 22 while (len1 > 0) { 23 if (len2 > 0) { 24 sum = parseInt(splitNum1[len1 - 1]) + parseInt(splitNum2[len2 - 1]) + carry 25 } else { 26 sum = parseInt(splitNum1[len1 - 1]) + carry 27 } 28 carry = Math.floor(sum / 10) // 进位数值 29 currentNum = sum % 10 // 取余数,作为当前位置的数值 30 splitNum1[len1 - 1] = currentNum // 设置当前值 31 32 // 相加之后,数值长度都递减 33 len1-- 34 len2-- 35 } 36 // 判断是否还有进位 37 if (carry) { 38 splitNum1.unshift(1) 39 } 40 return splitNum1.join('') 41 } 42 let result = add(9527, 2019) 43 44 console.log('result :', result) // result : 11546
备注:
转载于:https://www.cnblogs.com/linjunfu/p/10645498.html
JavaScript中大数相加的解法相关推荐
- javascript乘法和加法_JavaScript大数相加相乘的实现方法实例
前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...
- js浮点数/大数相加
1. 浮点数相加 console.log(0.1 + 0.2); //0.30000000000000004 console.log(0.1 + 0.2 === 0.3); //false 原因在于 ...
- [译]JavaScript中,{}+{}等于多少?
最近,Gary Bernhardt在一个简短的演讲视频"Wat"中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解 ...
- 大数相乘、大数相加、大数相减Java版本
为什么80%的码农都做不了架构师?>>> 题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现.否则的话可以使用如下方式来实 ...
- JavaScript中的字符串操作(转)
http://www.cnblogs.com/xuebin/articles/1296837.html 最近编一个javascript的翻译程序,发现无法正确比较两个字符串的相等,上网查了查,发现这篇 ...
- 两个函数式解决大数相加的方法
解决大数相加的方法有很多,网上很容易搜到,下面介绍两种,一种是在网上抄的,一种是自己想的,我将他们都用函数式的方式重写了一遍. 这种是在网上抄的,的确非常简洁 function add(a,b) {l ...
- Javascript中的Callback方法浅析
什么是callback? 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函 ...
- Javascript中的陷阱大集合【译】
参考:http://www.2cto.com/kf/201111/111203.html 昨天晚上在自己的个人技术博客上翻译了一篇有关Javascript的文章,今天想想还是把它投稿到博客园吧,大家可 ...
- es6 依赖循环_探索 JavaScript 中的依赖管理及循环依赖
我们通常会把项目中使用的第三方依赖写在 package.json 文件里,然后使用 npm .cnpm 或者 yarn 这些流行的依赖管理工具来帮我们管理这些依赖.但是它们是如何管理这些依赖的.它们之 ...
最新文章
- [AVR]使用AVR单片机驱动舵机
- 【TDS学习文档4】IBM Directory schema的管理2——object class
- MySQL 高级 游标介绍
- python网络爬虫系列(七)——selenium的介绍 selenium定位获取标签对象并提取数据 selenium的其它使用方法
- base64 convert to file
- bzoj 3039: 玉蟾宫(悬线法)
- Qt5学习笔记之串口助手二:发送接收实现
- 9.GitLab 汉化
- [linux命令]基本命令
- ctfhub(rce智慧树)
- 李践《行动日志——目标管理》观后感
- WinRAR 曝出代码执行漏洞,你的官方中文无广告版该升级了
- onenote2019导入_将OneNote 2007笔记本导入Evernote
- docker装LibreELEC_Linux和macOS系统安装LibreELEC的方法
- Intel SGX官网
- 君莫笑:小白的堆(bai_dui)
- 使用Canal ClientAdapter实现Mysql的DDL、DML同步到PostgreSQL
- 记录一下Python的11个小技巧
- iOS应用组件化/模块化探究
- 手把手教你脑电波采集及信号处理分析 - 知乎
热门文章
- post 图片 byte 如何展示_图片展示:道路排水工程如何进行标准化施工
- 小学二年级上学期计算机教案,小学二年级上学期信息技术教案范文【三篇】
- 了解SQL Server SELECT INTO语句
- python opencv_Python open()
- android数据绑定_Android数据绑定
- rxjava教程_RxJava教程
- git 报错 Repository Not Found
- 小议C++中函数的参数的传递
- 开课吧:数据分析的价值体现在哪些方面?
- Java基础如何运用FileOutputStream